diff --git a/runner_functions.js b/runner_functions.js index 4132aea..30baa8a 100644 --- a/runner_functions.js +++ b/runner_functions.js @@ -87,11 +87,11 @@ function game_log(message,color) function get_target_of(entity) // .target is a Name for Monsters and `id` for Players - this function return whatever the entity in question is targeting { if(!entity || !entity.target) return null; - if(character.id+''==entity.target+'' || character.name+''==entity.target+'') return character; + if(character.id==entity.target) return character; for(var id in parent.entities) { var e=parent.entities[id]; - if(e.id+''==entity.target+'' || e.name+''==entity.target+'') return e; + if(e.id==entity.target) return e; } return null; } @@ -246,6 +246,7 @@ function get_nearest_monster(args) // target: Only return monsters that target this "name" or player object // no_target: Only pick monsters that don't have any target // path_check: Checks if the character can move to the target + // type: Type of the monsters, for example "goo", can be referenced from `show_json(G.monsters)` [08/02/17] var min_d=999999,target=null; if(!args) args={}; @@ -254,7 +255,10 @@ function get_nearest_monster(args) for(id in parent.entities) { var current=parent.entities[id]; - if(current.type!="monster" || args.min_xp && current.xpargs.max_att || current.dead) continue; + if(current.type!="monster" || current.dead) continue; + if(args.type && current.mtype!=args.type) continue; + if(args.min_xp && current.xpargs.max_att) continue; if(args.target && current.target!=args.target) continue; if(args.no_target && current.target && current.target!=character.name) continue; if(args.path_check && !can_move_to(current)) continue; @@ -264,6 +268,25 @@ function get_nearest_monster(args) return target; } +function get_nearest_hostile(args) // mainly as an example [08/02/17] +{ + //args: no args yet + var min_d=999999,target=null; + + if(!args) args={}; + + for(id in parent.entities) + { + var current=parent.entities[id]; + if(current.type!="character" || current.rip || current.invincible) continue; + if(current.party && character.party==current.party) continue; + if(in_arr(current.owner,parent.friends)) continue; + var c_dist=parent.distance(character,current); + if(c_dist