public static bool IsOrc(this NPCProto proto)
 {
     if (proto.getGuild() > Guilds.MON_SEPERATOR && proto.getGuild() <= Guilds.ORC_SEPERATOR)
     {
         return(true);
     }
     return(false);
 }
 public static bool IsMonster(this NPCProto proto)
 {
     if (proto.getGuild() > Guilds.HUM_SPERATOR && proto.getGuild() <= Guilds.MON_SEPERATOR)
     {
         return(true);
     }
     return(false);
 }
 public static bool IsHuman(this NPCProto proto)
 {
     if (proto.getGuild() <= Guilds.HUM_SPERATOR)
     {
         return(true);
     }
     return(false);
 }
        public static void OnDamage(NPCProto npc, NPCProto victim, NPCProto attacker,
                                    int damage, bool dropUnconscious, bool dropDead)
        {
            NPCAI ai = npc.getAI();

            if (victim.HP != 0)
            {
                if (npc.getAttitudeToGuild(victim.getGuild()) == Enumeration.GuildsAttitude.FRIENDLY &&
                    npc.getAttitudeToGuild(attacker.getGuild()) != Enumeration.GuildsAttitude.FRIENDLY)
                {
                    ai.addEnemy(attacker);
                }
                else if (npc.getAttitudeToGuild(attacker.getGuild()) == Enumeration.GuildsAttitude.FRIENDLY &&
                         npc.getAttitudeToGuild(victim.getGuild()) != Enumeration.GuildsAttitude.FRIENDLY)
                {
                    ai.addEnemy(victim);
                }
            }
            else if (ai.AssessBodyRoutine != null)
            {
                ai.AssessBodyRoutine(npc, victim);
            }
        }
Esempio n. 5
0
        public static void OnAssessTarget(NPCProto npc, NPCProto target)
        {
            NPCAI ai = npc.getAI();

            //Check if target is Enemy and call AssessEnemy:
            if (npc.getAttitudeToGuild(target.getGuild()) == Enumeration.GuildsAttitude.HOSTILE &&
                target.HP != 0 &&
                !target.isUnconscious && ai.AssessEnemyRoutine != null)
            {
                if (ai.AssessWarnRoutine != null)
                {
                }
                else
                {
                    ai.AssessEnemyRoutine(npc, target);
                }
            }

            if (target.HP == 0 && ai.AssessBodyRoutine != null)
            {
                ai.AssessBodyRoutine(npc, target);
            }
        }
 public static GuildsAttitude getAttitudeToGuild(this NPCProto proto, Guilds guild)
 {
     return(AISystem.getGuildAttitude(proto.getGuild(), guild));
 }