예제 #1
0
            public override IValue GetIValue(Agent self, IInstanceMember firstParam)
            {
                Agent agent = Utils.GetParentAgent(self, _instance);

                FightAgent result = ((CInstanceMember <FightAgent>)firstParam).GetValue(self);

                _returnValue.value = ((HeroAgent)agent).LootTreasure(result);
                return(_returnValue);
            }
예제 #2
0
    }                                  //攻击范围
    /// <summary>
    /// 目标是否在攻击范围内
    /// </summary>
    /// <param name="enemyTarget"></param>
    /// <returns></returns>
    public bool TestEnemyInAtkRange(FightAgent enemyTarget)
    {
        if (enemyTarget != null && enemyTarget.transform != null)
        {
            return(Vector3.Distance(transform.position, enemyTarget.transform.position) <= AtkRange);
        }

        return(false);
    }
예제 #3
0
            public override IValue GetIValue(Agent self, IInstanceMember firstParam)
            {
                Agent agent = Utils.GetParentAgent(self, _instance);

                FightAgent result = ((CInstanceMember <FightAgent>)firstParam).GetValue(self);

                _returnValue.value = ((SoilderAgent)agent).MoveToTarget(result);
                return(_returnValue);
            }
예제 #4
0
    /// <summary>
    /// 请求向一个目标移动
    /// </summary>
    /// <param name="target"></param>
    /// <returns></returns>
    public behaviac.EBTStatus MoveToTarget(FightAgent target)
    {
        if (curActionStatus != ActionStatus.Moving)
        {
            curActionStatus = ActionStatus.Moving;
            curTargetPos    = target.transform.position;
            MgrCenter.Instance.SendMsg(Msgs.GetMsgMoveRequest((ushort)MoveEvent.MoveClientRequest, Id, transform.position, curTargetPos));
        }

        return(behaviac.EBTStatus.BT_RUNNING);
    }
예제 #5
0
        /// <summary>
        /// 给建筑添加Agent脚本
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="specieId"></param>
        /// <returns></returns>
        private FightAgent AddBuildingAgentScript(GameObject entity, int specieId)
        {
            FightAgent fightAgent = null;

            switch (specieId)
            {
            case (int)BuildingType.defenseTower:
            case (int)BuildingType.advancedDFTower:
                fightAgent = entity.AddComponent <DefenseTowerAgent>();
                break;

            case (int)BuildingType.headQuarter:
            case (int)BuildingType.barracks:
                fightAgent = entity.AddComponent <BuildingAgent>();
                break;
            }

            return(fightAgent);
        }
예제 #6
0
    /// <summary>
    /// 发送攻击请求
    /// </summary>
    /// <param name="target"></param>
    /// <returns></returns>
    public behaviac.EBTStatus Attack(FightAgent target)
    {
        if (target == null)
        {
            return(behaviac.EBTStatus.BT_FAILURE);
        }
        if (target.IsDead())
        {
            return(behaviac.EBTStatus.BT_SUCCESS);
        }

        if (curActionStatus != ActionStatus.StopAndDoingSomething)
        {
            curActionStatus = ActionStatus.StopAndDoingSomething;

            //开启一个协程计算时间处理攻击? 还是用动画事件处理攻击?
            MgrCenter.Instance.SendMsg(Msgs.GetMsgAtkRequest((ushort)SoilderFightEvent.SoilderAtkClientRequest, Id, target.Id));
        }

        return(behaviac.EBTStatus.BT_RUNNING);
    }
예제 #7
0
    /// <summary>
    /// 攻击当前的目标,每次攻击由这个AI发出攻击请求,确保攻击在各个终端的一致性
    /// </summary>
    /// <returns></returns>
    public behaviac.EBTStatus AttackCurEnemy()
    {
        if (curTarget == null)
        {
            isAttacking = false;
            MgrCenter.Instance.SendMsg(Msgs.GetMsgInt((ushort)BuildingFightEvent.DefenseTowerIdle, Id));
            return(behaviac.EBTStatus.BT_FAILURE);
        }
        if (curTarget.IsDead())
        {
            isAttacking = false;
            curTarget   = null;
            MgrCenter.Instance.SendMsg(Msgs.GetMsgInt((ushort)BuildingFightEvent.DefenseTowerIdle, Id));
            return(behaviac.EBTStatus.BT_SUCCESS);
        }

        if (!isAttacking)
        {
            isAttacking = true;
            Attack(curTarget);
        }

        return(behaviac.EBTStatus.BT_RUNNING);
    }
예제 #8
0
 /// <summary>
 /// 拾取宝物
 /// </summary>
 /// <param name="treasure"></param>
 /// <returns></returns>
 public behaviac.EBTStatus LootTreasure(FightAgent treasure)
 {
     //TODO 发送拾取宝物消息,拾取宝物
     return(behaviac.EBTStatus.BT_INVALID);
 }
예제 #9
0
 /// <summary>
 /// 是否在拾取范围内
 /// </summary>
 /// <param name="treasure"></param>
 /// <returns></returns>
 public bool IsInLootRange(FightAgent treasure)
 {
     return(Vector3.Distance(treasure._get_position().UnityVec(), transform.position) <= 5f);
 }
예제 #10
0
        /// <summary>
        /// 初始化AI脚本
        /// </summary>
        /// <param name="hasAI"></param>
        /// <param name="entity"></param>
        /// <param name="fightInstance"></param>
        private void InitialAI(bool hasAI, GameObject entity, AbsFightInstance fightInstance)
        {
            if (hasAI)
            {
                FightAgent fightAgent = entity.GetComponent <FightAgent>();
                switch (fightInstance.fightModel.category)
                {
                case (byte)ModelType.Building:
                    if (entity.GetComponent <NavMeshAgent>() != null)
                    {
                        Destroy(entity.GetComponent <NavMeshAgent>());
                    }

                    fightAgent = AddBuildingAgentScript(entity, fightInstance.fightModel.specieId);
                    break;

                case (byte)ModelType.Creature:
                    if (entity.GetComponent <NavMeshAgent>() == null)
                    {
                        entity.AddComponent <NavMeshAgent>();
                    }
                    break;

                case (byte)ModelType.Hero:
                    break;
                }
                if (entity.GetComponent <PosSyncDriver>() != null)
                {
                    Destroy(entity.GetComponent <PosSyncDriver>());
                }

                if (fightAgent != null)
                {
                    //Data Model setting
                    fightAgent.Id = fightInstance.instanceId;
                    //start ai
                    fightAgent.Initial();
                    fightAgent.StartAI();
                }
            }
            else
            {
                if (entity.GetComponent <FightAgent>() != null)
                {
                    Destroy(entity.GetComponent <FightAgent>());
                }
                if (entity.GetComponent <NavMeshAgent>() != null)
                {
                    Destroy(entity.GetComponent <NavMeshAgent>());
                }
                switch (fightInstance.fightModel.category)
                {
                case (byte)ModelType.Building:
                    if (entity.GetComponent <PosSyncDriver>() != null)
                    {
                        Destroy(entity.GetComponent <PosSyncDriver>());
                    }
                    break;

                case (byte)ModelType.Creature:
                case (byte)ModelType.Hero:
                    if (entity.GetComponent <PosSyncDriver>() == null)
                    {
                        entity.AddComponent <PosSyncDriver>();
                    }
                    break;
                }
            }
        }
예제 #11
0
 public void _set_curEnemyTarget(FightAgent value)
 {
     curEnemyTarget = value;
 }
예제 #12
0
        public override bool Load()
        {
            AgentMeta.TotalSignature = 2623873306;

            AgentMeta meta;

            // behaviac.Agent
            meta = new AgentMeta(24743406);
            AgentMeta._AgentMetas_[2436498804] = meta;
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { behaviac.Agent.LogMessage(param0); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            // FightAgent
            meta = new AgentMeta(2912840436);
            AgentMeta._AgentMetas_[2927482685] = meta;
            meta.RegisterMemberProperty(1074892373, new CMemberProperty <bool>("couldAttack", delegate(Agent self, bool value) { ((FightAgent)self)._set_couldAttack(value); }, delegate(Agent self) { return(((FightAgent)self)._get_couldAttack()); }));
            meta.RegisterMemberProperty(1823529647, new CMemberProperty <bool>("couldMove", delegate(Agent self, bool value) { ((FightAgent)self)._set_couldMove(value); }, delegate(Agent self) { return(((FightAgent)self)._get_couldMove()); }));
            meta.RegisterMemberProperty(4050060769, new CMemberProperty <bool>("isDead", delegate(Agent self, bool value) { ((FightAgent)self)._set_isDead(value); }, delegate(Agent self) { return(((FightAgent)self)._get_isDead()); }));
            meta.RegisterMemberProperty(2799042603, new CMemberProperty <behaviac.EBTStatus>("LifeStatus", delegate(Agent self, behaviac.EBTStatus value) { ((FightAgent)self)._set_LifeStatus(value); }, delegate(Agent self) { return(((FightAgent)self)._get_LifeStatus()); }));
            meta.RegisterMemberProperty(4005016119, new CMemberProperty <bVector3>("position", delegate(Agent self, bVector3 value) { ((FightAgent)self)._set_position(value); }, delegate(Agent self) { return(((FightAgent)self)._get_position()); }));
            meta.RegisterMethod(1054489725, new CAgentMethod <bool>(delegate(Agent self) { return(((FightAgent)self).IsDead()); }));
            meta.RegisterMethod(726511973, new CAgentMethod <bool>(delegate(Agent self) { return(((FightAgent)self).IsLowHp()); }));
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { FightAgent.LogMessage(param0); }));
            meta.RegisterMethod(181959349, new CAgentMethodVoid(delegate(Agent self) { ((FightAgent)self).PlayDead(); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            // BuildingAgent
            meta = new AgentMeta(744566553);
            AgentMeta._AgentMetas_[4051970114] = meta;
            meta.RegisterMemberProperty(1074892373, new CMemberProperty <bool>("couldAttack", delegate(Agent self, bool value) { ((BuildingAgent)self)._set_couldAttack(value); }, delegate(Agent self) { return(((BuildingAgent)self)._get_couldAttack()); }));
            meta.RegisterMemberProperty(1823529647, new CMemberProperty <bool>("couldMove", delegate(Agent self, bool value) { ((BuildingAgent)self)._set_couldMove(value); }, delegate(Agent self) { return(((BuildingAgent)self)._get_couldMove()); }));
            meta.RegisterMemberProperty(4050060769, new CMemberProperty <bool>("isDead", delegate(Agent self, bool value) { ((BuildingAgent)self)._set_isDead(value); }, delegate(Agent self) { return(((BuildingAgent)self)._get_isDead()); }));
            meta.RegisterMemberProperty(2799042603, new CMemberProperty <behaviac.EBTStatus>("LifeStatus", delegate(Agent self, behaviac.EBTStatus value) { ((BuildingAgent)self)._set_LifeStatus(value); }, delegate(Agent self) { return(((BuildingAgent)self)._get_LifeStatus()); }));
            meta.RegisterMemberProperty(4005016119, new CMemberProperty <bVector3>("position", delegate(Agent self, bVector3 value) { ((BuildingAgent)self)._set_position(value); }, delegate(Agent self) { return(((BuildingAgent)self)._get_position()); }));
            meta.RegisterMethod(1054489725, new CAgentMethod <bool>(delegate(Agent self) { return(((BuildingAgent)self).IsDead()); }));
            meta.RegisterMethod(726511973, new CAgentMethod <bool>(delegate(Agent self) { return(((BuildingAgent)self).IsLowHp()); }));
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { BuildingAgent.LogMessage(param0); }));
            meta.RegisterMethod(181959349, new CAgentMethodVoid(delegate(Agent self) { ((BuildingAgent)self).PlayDead(); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            // DefenseTowerAgent
            meta = new AgentMeta(2978994066);
            AgentMeta._AgentMetas_[1520164275] = meta;
            meta.RegisterMemberProperty(1074892373, new CMemberProperty <bool>("couldAttack", delegate(Agent self, bool value) { ((DefenseTowerAgent)self)._set_couldAttack(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_couldAttack()); }));
            meta.RegisterMemberProperty(1823529647, new CMemberProperty <bool>("couldMove", delegate(Agent self, bool value) { ((DefenseTowerAgent)self)._set_couldMove(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_couldMove()); }));
            meta.RegisterMemberProperty(1067866206, new CMemberProperty <FightAgent>("curTarget", delegate(Agent self, FightAgent value) { ((DefenseTowerAgent)self)._set_curTarget(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_curTarget()); }));
            meta.RegisterMemberProperty(4050060769, new CMemberProperty <bool>("isDead", delegate(Agent self, bool value) { ((DefenseTowerAgent)self)._set_isDead(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_isDead()); }));
            meta.RegisterMemberProperty(2799042603, new CMemberProperty <behaviac.EBTStatus>("LifeStatus", delegate(Agent self, behaviac.EBTStatus value) { ((DefenseTowerAgent)self)._set_LifeStatus(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_LifeStatus()); }));
            meta.RegisterMemberProperty(4005016119, new CMemberProperty <bVector3>("position", delegate(Agent self, bVector3 value) { ((DefenseTowerAgent)self)._set_position(value); }, delegate(Agent self) { return(((DefenseTowerAgent)self)._get_position()); }));
            meta.RegisterMethod(3575241253, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((DefenseTowerAgent)self).AttackCurEnemy()); }));
            meta.RegisterMethod(2972488885, new CAgentMethod <FightAgent>(delegate(Agent self) { return(((DefenseTowerAgent)self).FindEnemyInRange()); }));
            meta.RegisterMethod(1054489725, new CAgentMethod <bool>(delegate(Agent self) { return(((DefenseTowerAgent)self).IsDead()); }));
            meta.RegisterMethod(726511973, new CAgentMethod <bool>(delegate(Agent self) { return(((DefenseTowerAgent)self).IsLowHp()); }));
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { DefenseTowerAgent.LogMessage(param0); }));
            meta.RegisterMethod(181959349, new CAgentMethodVoid(delegate(Agent self) { ((DefenseTowerAgent)self).PlayDead(); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            // SoilderAgent
            meta = new AgentMeta(549697942);
            AgentMeta._AgentMetas_[4286480859] = meta;
            meta.RegisterMemberProperty(1074892373, new CMemberProperty <bool>("couldAttack", delegate(Agent self, bool value) { ((SoilderAgent)self)._set_couldAttack(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_couldAttack()); }));
            meta.RegisterMemberProperty(1823529647, new CMemberProperty <bool>("couldMove", delegate(Agent self, bool value) { ((SoilderAgent)self)._set_couldMove(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_couldMove()); }));
            meta.RegisterMemberProperty(593809957, new CMemberProperty <ActionStatus>("curActionStatus", delegate(Agent self, ActionStatus value) { ((SoilderAgent)self)._set_curActionStatus(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_curActionStatus()); }));
            meta.RegisterMemberProperty(2679270583, new CMemberProperty <FightAgent>("curEnemyTarget", delegate(Agent self, FightAgent value) { ((SoilderAgent)self)._set_curEnemyTarget(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_curEnemyTarget()); }));
            meta.RegisterMemberProperty(1428937743, new CMemberProperty <Situation>("curSituation", delegate(Agent self, Situation value) { ((SoilderAgent)self)._set_curSituation(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_curSituation()); }));
            meta.RegisterMemberProperty(1608869297, new CMemberProperty <bVector3>("curTacticAtkPos", delegate(Agent self, bVector3 value) { ((SoilderAgent)self)._set_curTacticAtkPos(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_curTacticAtkPos()); }));
            meta.RegisterMemberProperty(4009490894, new CMemberProperty <bVector3>("homePoint", delegate(Agent self, bVector3 value) { ((SoilderAgent)self)._set_homePoint(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_homePoint()); }));
            meta.RegisterMemberProperty(4050060769, new CMemberProperty <bool>("isDead", delegate(Agent self, bool value) { ((SoilderAgent)self)._set_isDead(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_isDead()); }));
            meta.RegisterMemberProperty(2799042603, new CMemberProperty <behaviac.EBTStatus>("LifeStatus", delegate(Agent self, behaviac.EBTStatus value) { ((SoilderAgent)self)._set_LifeStatus(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_LifeStatus()); }));
            meta.RegisterMemberProperty(4005016119, new CMemberProperty <bVector3>("position", delegate(Agent self, bVector3 value) { ((SoilderAgent)self)._set_position(value); }, delegate(Agent self) { return(((SoilderAgent)self)._get_position()); }));
            meta.RegisterMethod(3127879122, new CMethod_SoilderAgent_Attack());
            meta.RegisterMethod(1629954219, new CAgentMethodVoid <bVector3>(delegate(Agent self, bVector3 task_pos) { }) /* AttackToPos_task */);
            meta.RegisterMethod(783803240, new CAgentMethodVoid <FightAgent>(delegate(Agent self, FightAgent task_chaseTarget) { }) /* ChaseAndAttack_task */);
            meta.RegisterMethod(2716570482, new CAgentMethod <FightAgent>(delegate(Agent self) { return(((SoilderAgent)self).GetNearestEnemy()); }));
            meta.RegisterMethod(2253404977, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((SoilderAgent)self).Idle()); }));
            meta.RegisterMethod(1054489725, new CAgentMethod <bool>(delegate(Agent self) { return(((SoilderAgent)self).IsDead()); }));
            meta.RegisterMethod(726511973, new CAgentMethod <bool>(delegate(Agent self) { return(((SoilderAgent)self).IsLowHp()); }));
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { SoilderAgent.LogMessage(param0); }));
            meta.RegisterMethod(2754924504, new CMethod_SoilderAgent_MoveTo());
            meta.RegisterMethod(1793645156, new CMethod_SoilderAgent_MoveToTarget());
            meta.RegisterMethod(181959349, new CAgentMethodVoid(delegate(Agent self) { ((SoilderAgent)self).PlayDead(); }));
            meta.RegisterMethod(3970781763, new CMethod_SoilderAgent_TestEnemyInAtkRange());
            meta.RegisterMethod(3756619215, new CAgentMethod <bool>(delegate(Agent self) { return(((SoilderAgent)self).TestHasAtkToPosCommand()); }));
            meta.RegisterMethod(700275576, new CAgentMethod <bool>(delegate(Agent self) { return(((SoilderAgent)self).TestHasEnemyInEyeRange()); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            // HeroAgent
            meta = new AgentMeta(3064835767);
            AgentMeta._AgentMetas_[2270112014] = meta;
            meta.RegisterMemberProperty(1074892373, new CMemberProperty <bool>("couldAttack", delegate(Agent self, bool value) { ((HeroAgent)self)._set_couldAttack(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_couldAttack()); }));
            meta.RegisterMemberProperty(1823529647, new CMemberProperty <bool>("couldMove", delegate(Agent self, bool value) { ((HeroAgent)self)._set_couldMove(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_couldMove()); }));
            meta.RegisterMemberProperty(593809957, new CMemberProperty <ActionStatus>("curActionStatus", delegate(Agent self, ActionStatus value) { ((HeroAgent)self)._set_curActionStatus(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_curActionStatus()); }));
            meta.RegisterMemberProperty(2679270583, new CMemberProperty <FightAgent>("curEnemyTarget", delegate(Agent self, FightAgent value) { ((HeroAgent)self)._set_curEnemyTarget(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_curEnemyTarget()); }));
            meta.RegisterMemberProperty(1428937743, new CMemberProperty <Situation>("curSituation", delegate(Agent self, Situation value) { ((HeroAgent)self)._set_curSituation(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_curSituation()); }));
            meta.RegisterMemberProperty(1608869297, new CMemberProperty <bVector3>("curTacticAtkPos", delegate(Agent self, bVector3 value) { ((HeroAgent)self)._set_curTacticAtkPos(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_curTacticAtkPos()); }));
            meta.RegisterMemberProperty(3679778246, new CMemberProperty <bVector3>("fleePos", delegate(Agent self, bVector3 value) { ((HeroAgent)self)._set_fleePos(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_fleePos()); }));
            meta.RegisterMemberProperty(4009490894, new CMemberProperty <bVector3>("homePoint", delegate(Agent self, bVector3 value) { ((HeroAgent)self)._set_homePoint(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_homePoint()); }));
            meta.RegisterMemberProperty(4050060769, new CMemberProperty <bool>("isDead", delegate(Agent self, bool value) { ((HeroAgent)self)._set_isDead(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_isDead()); }));
            meta.RegisterMemberProperty(2799042603, new CMemberProperty <behaviac.EBTStatus>("LifeStatus", delegate(Agent self, behaviac.EBTStatus value) { ((HeroAgent)self)._set_LifeStatus(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_LifeStatus()); }));
            meta.RegisterMemberProperty(4005016119, new CMemberProperty <bVector3>("position", delegate(Agent self, bVector3 value) { ((HeroAgent)self)._set_position(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_position()); }));
            meta.RegisterMemberProperty(1022875399, new CMemberProperty <bVector3>("retreatPos", delegate(Agent self, bVector3 value) { ((HeroAgent)self)._set_retreatPos(value); }, delegate(Agent self) { return(((HeroAgent)self)._get_retreatPos()); }));
            meta.RegisterMethod(2674554263, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).ArrivedRetreatPos()); }));
            meta.RegisterMethod(3127879122, new CMethod_SoilderAgent_Attack());
            meta.RegisterMethod(1629954219, new CAgentMethodVoid <bVector3>(delegate(Agent self, bVector3 task_pos) { }) /* AttackToPos_task */);
            meta.RegisterMethod(3981281435, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).CallFriendHeroToHealMe()); }));
            meta.RegisterMethod(783803240, new CAgentMethodVoid <FightAgent>(delegate(Agent self, FightAgent task_chaseTarget) { }) /* ChaseAndAttack_task */);
            meta.RegisterMethod(1105002646, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).CombooKill()); }));
            meta.RegisterMethod(143620965, new CAgentMethodVoid <bVector3>(delegate(Agent self, bVector3 task_cooperatePos) { }) /* Cooperate_task */);
            meta.RegisterMethod(592004963, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).CouldBeSecKilled()); }));
            meta.RegisterMethod(1497521703, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).CouldUseQuickHeal()); }));
            meta.RegisterMethod(2027654893, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).CouldUseSlowHeal()); }));
            meta.RegisterMethod(1787278696, new CAgentMethod <bVector3>(delegate(Agent self) { return(((HeroAgent)self).GetCurReseanableTacticsTarget()); }));
            meta.RegisterMethod(749487724, new CAgentMethod <float>(delegate(Agent self) { return(((HeroAgent)self).GetDistanceFromHome()); }));
            meta.RegisterMethod(1218032045, new CAgentMethod <int>(delegate(Agent self) { return(((HeroAgent)self).GetEnemyCountInRange()); }));
            meta.RegisterMethod(2743497259, new CAgentMethod <int>(delegate(Agent self) { return(((HeroAgent)self).GetEnemyHeroCountInRange()); }));
            meta.RegisterMethod(3513837595, new CAgentMethod <int>(delegate(Agent self) { return(((HeroAgent)self).GetFirendHeroCountInRange()); }));
            meta.RegisterMethod(3164054455, new CAgentMethod <int>(delegate(Agent self) { return(((HeroAgent)self).GetFriendCountInRange()); }));
            meta.RegisterMethod(2716570482, new CAgentMethod <FightAgent>(delegate(Agent self) { return(((HeroAgent)self).GetNearestEnemy()); }));
            meta.RegisterMethod(1237488994, new CAgentMethod <FightAgent>(delegate(Agent self) { return(((HeroAgent)self).GetWeakestEnemy()); }));
            meta.RegisterMethod(2569706439, new CAgentMethod <FightAgent>(delegate(Agent self) { return(((HeroAgent)self).GetWeakHeroInRange()); }));
            meta.RegisterMethod(2547311622, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).HasCombooKill()); }));
            meta.RegisterMethod(1496859174, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).HasEnemyInEyeRange()); }));
            meta.RegisterMethod(996104106, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).HasReturnHomeSkill()); }));
            meta.RegisterMethod(1519838893, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).HasTreasureInEyeRange()); }));
            meta.RegisterMethod(2253404977, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).Idle()); }));
            meta.RegisterMethod(1054489725, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).IsDead()); }));
            meta.RegisterMethod(2432849062, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).IsEnemyChasing()); }));
            meta.RegisterMethod(1778583587, new CMethod_HeroAgent_IsInLootRange());
            meta.RegisterMethod(726511973, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).IsLowHp()); }));
            meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { HeroAgent.LogMessage(param0); }));
            meta.RegisterMethod(3468933412, new CMethod_HeroAgent_LootTreasure());
            meta.RegisterMethod(762819242, new CAgentMethodVoid <FightAgent>(delegate(Agent self, FightAgent task_treasure) { }) /* LootTreasure_task */);
            meta.RegisterMethod(2754924504, new CMethod_SoilderAgent_MoveTo());
            meta.RegisterMethod(1793645156, new CMethod_SoilderAgent_MoveToTarget());
            meta.RegisterMethod(181959349, new CAgentMethodVoid(delegate(Agent self) { ((HeroAgent)self).PlayDead(); }));
            meta.RegisterMethod(2057619381, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).QuickHeal()); }));
            meta.RegisterMethod(4056496344, new CMethod_HeroAgent_SetRetreatPos());
            meta.RegisterMethod(563297901, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).SkillReturnHome()); }));
            meta.RegisterMethod(420198528, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((HeroAgent)self).SlowHealSelf()); }));
            meta.RegisterMethod(2783913227, new CAgentMethodVoid <bVector3>(delegate(Agent self, bVector3 task_tacticsAtkPos) { }) /* TacticsAttack_task */);
            meta.RegisterMethod(3500369013, new CAgentMethodVoid <bVector3>(delegate(Agent self, bVector3 task_RetreatPos) { }) /* TempRetreat_task */);
            meta.RegisterMethod(2100968353, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestArrivedTacticsTarget()); }));
            meta.RegisterMethod(2854910934, new CAgentMethod <Situation>(delegate(Agent self) { return(((HeroAgent)self).TestCurSituation()); }));
            meta.RegisterMethod(3970781763, new CMethod_SoilderAgent_TestEnemyInAtkRange());
            meta.RegisterMethod(982139696, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestFriendHeroCouldHealMe()); }));
            meta.RegisterMethod(3756619215, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestHasAtkToPosCommand()); }));
            meta.RegisterMethod(700275576, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestHasEnemyInEyeRange()); }));
            meta.RegisterMethod(3000592579, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestHasTacticsTargetLeft()); }));
            meta.RegisterMethod(1819711739, new CAgentMethod <bool>(delegate(Agent self) { return(((HeroAgent)self).TestSomeEnemyHeroCouldBeKilled()); }));
            meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd());
            meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear());
            meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains());
            meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength());
            meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove());

            AgentMeta.Register <behaviac.Agent>("behaviac.Agent");
            AgentMeta.Register <FightAgent>("FightAgent");
            AgentMeta.Register <BuildingAgent>("BuildingAgent");
            AgentMeta.Register <DefenseTowerAgent>("DefenseTowerAgent");
            AgentMeta.Register <SoilderAgent>("SoilderAgent");
            AgentMeta.Register <HeroAgent>("HeroAgent");
            AgentMeta.Register <Situation>("Situation");
            ComparerRegister.RegisterType <Situation, CompareValue_Situation>();
            AgentMeta.Register <ActionStatus>("ActionStatus");
            ComparerRegister.RegisterType <ActionStatus, CompareValue_ActionStatus>();
            AgentMeta.Register <bVector3>("bVector3");
            ComparerRegister.RegisterType <bVector3, CompareValue_bVector3>();
            return(true);
        }
예제 #13
0
 /// <summary>
 /// 发送攻击消息
 /// </summary>
 /// <param name="target"></param>
 private void Attack(FightAgent target)
 {
     MgrCenter.Instance.SendMsg(Msgs.GetMsgInt((ushort)BuildingFightEvent.DefenseTowerAtkCreq, curTarget.Id));
 }