view()
are used in places where they don't make sense. For example, take this verb:mob/verb/cast(mob/m as mob in oview(1))
oview() << "You see [usr] casting a spell on [m]!"
Now, picking a mob in
oview()
makes sense, as you need to see him in order to cast the spell, but would everyone that you can see be able to see you? No.Procedures such as
oviewers()
or ohearers()
are often missed, while they're a much more logic answer for this. oviewers()
should be used in that attack verb, as it refers to everyone that can, well, 'view' you(=P).Now, it doesn't really end here, what if you're blind, but can still hear the slash?
mob/verb/attack(mob/m as mob in orange(1))
// orange() would be used here, since you could still slash randomly around you. =P
ohearers() << "You hear a slash!"
oviewers() << "You see [usr] attacking [m]!"
Now this makes much more sense, everyone that can hear you gets a message saying they heard the slash(yet they still don't know who caused it), and everyone that views can see who caused the slash.
But it doesn't end here. In the previous example, we had the user pick a mob in his range, but if he is blind, he shouldn't be able to pick the mob he wants to attack.
mob/verb/attack()
var/target
if(usr.sight & BLIND)
target = pick(orange(1)) // you can target anything, even the air!
else
target = input("Attack who?") as anything in oview(1)
I think the logic in sight is often underestimated, and should be used more often.
Thoughties?
Generally, in most BYOND games, if another player is in your view(), then you are in their view() (and some for the converse, of course) And so using the simple oview() is sufficient to cover virtually any event...
So to get to the point where you should be using oviewers() and ohearers() for output, your underlying systems will need to be more sophisticated overall (and by that point, I'd assume this developer is experienced enough to know the usage of these two procs)
Of course, having more sophisticated systems in general will make for better games, so this would definitely be a welcome change...