Exemple #1
0
    public LocalObject(LocalShape localShape, string _uniqueName = "", Inventory _inventory = null)
    {
        uniqueName = _uniqueName;
        shape = new ShapeComponent(localShape, this);

        if (localShape.type == LocalType.Get("Destructible") || localShape.type == LocalType.Get("Container"))
        {
            hp = new HPComponent(this);
        }
        else if (localShape.type == LocalType.Get("Creature"))
        {
            hp = new HPComponent(this);
            movement = new Movement(this);
            defence = new Defence(this);
            attack = new Attack(this);
            abilities = new Abilities(this);
            fatigue = new Fatigue(this);
            eating = new Eating(this);
        }

        if (_inventory != null)
        {
            inventory = new Inventory(6, 1, "", false, null, this);
            _inventory.CopyTo(inventory);
        }
    }
Exemple #2
0
    protected internal override void OnEnter(IFsm <IProcedureManager> procedureOwner)
    {
        base.OnEnter(procedureOwner);

        //根据绝对路径设置与获取数据
        poolComponent = GameEntry.GetComponent <HPComponent>();
    }
Exemple #3
0
    public void InitFishUI()
    {
        //DelegateEvent.EventProcessUI(transform, HUDController.UITypes.HPComponent, out m_Component);
        MonoBehaviour temp = m_HP as MonoBehaviour;

        if (Fish.EventProcessUI != null)
        {
            Fish.EventProcessUI(transform, HUDTankMgr.UITypes.HPComponent, out temp);
        }
        m_HP = temp as HPComponent;
    }
Exemple #4
0
    /// <summary>
    /// 增加血条
    /// </summary>
    /// <returns></returns>
    public HPComponent AddPlayerHPUI(PlayerComponent player)
    {
        Transform obj = Instantiate(HPUIPrefab);

        obj.gameObject.transform.SetParent(transform.Find("HP"));
        HPComponent hp = obj.GetComponent <HPComponent>();

        hp.followObj = player.transform;
        hp.Init();

        return(hp);
    }
Exemple #5
0
    /// <summary>
    /// 增加血条
    /// </summary>
    /// <returns></returns>
    public HPComponent AddNPCHPUI(NPCComponent npc)
    {
        Transform obj = Instantiate(HPUIPrefab);

        obj.localScale = Vector3.one;
        obj.gameObject.transform.SetParent(transform.Find("HP"));
        HPComponent hp = obj.GetComponent <HPComponent>();

        hp.followObj = npc.transform;
        hp.Init();

        return(hp);
    }
Exemple #6
0
    /// <summary>
    /// 绑定血条
    /// </summary>
    /// <param name="hp"></param>
    public void SetHPComponent(HPComponent hp)
    {
        hPComponent = hp;
        hPComponent.SetEnable(true);
        hPComponent.DeadEvent += () => {
            if (playerUnitData.PlayerId == PlayerManager.Instance.GetHeroPlayer().playerUnitData.PlayerId)
            {
                Destroy();
            }

            this.gameObject.SetActive(false);
            hPComponent.SetEnable(false);
        };
    }
Exemple #7
0
 private IEnumerator CreateListHPComponents()
 {
     for (int i = 0; i < m_HPQuota; ++i)
     {
         GameObject obj = Instantiate(Pre_HPComponent, transform);
         obj.SetActive(false);
         HPComponent hp = obj.GetComponent <HPComponent>();
         if (hp != null)
         {
             hp.SetParent(m_CacheRect);
             m_HPComponents.Add(hp);
         }
         yield return(null);
     }
 }
Exemple #8
0
    private void Start()
    {
        birthPos               = this.transform.position;
        npcAnimator            = this.GetComponent <Animator>();
        npcCharacterController = this.GetComponent <CharacterController>();

        originalPos = transform.position;

        defendCollider.OnTriggerEnterEvent += (collider) =>
        {
            if (collider.transform.tag == "Player")
            {
                attackHero = collider.transform;
                fsm.ChangeState <NPCAttackState>();
            }
        };

        defendCollider.OnTriggerExitEvent += (collider) =>
        {
            if (collider.transform.tag == "Player")
            {
                attackHero = null;
                fsm.ChangeState <NPCDefendState>();
            }
        };

        hPComponent = NPCManager.Instance.AddNPCHPUI(this);
        hPComponent.SetEnable(true);
        hPComponent.DeadEvent += () =>
        {
            PlayDeath();
        };

        fsm = GameEntry.Fsm.CreateFsm(this.GetHashCode().ToString(), this, new NPCDefendState(), new NPCAttackState());
        fsm.Start <NPCDefendState>();
    }
Exemple #9
0
    public LocalObject(string _uniqueName, Race _race, CharacterClass _cclass, Background _background, Origin _origin, int experience)
    {
        uniqueName = _uniqueName;
        race = _race;
        cclass = _cclass;
        background = _background;
        origin = _origin;

        xp = new Experience(experience, this);

        skills = new Skills(this);
        inventory = new Inventory(6, 1, "", true, null, this);

        hp = new HPComponent(this);
        movement = new Movement(this);
        defence = new Defence(this);
        attack = new Attack(this);
        abilities = new Abilities(this);
        fatigue = new Fatigue(this);
        eating = new Eating(this);
    }
Exemple #10
0
    void Start()
    {
        walkAnim = TestFSM.FSM_Walk_Anim;
        idleAnim = TestFSM.FSM_Idle_Anim;

        mRecorder = TestFSM.FSM_Test_Recorder;

        roundstate = TestFSM.FSM_Round;
        Idlestate  = TestFSM.FSM_Idle;
        roundExit  = TestFSM.FSM_Run_Exit;
        yali       = yaliFSM.yali_Transfer;


        for (int i = 0; i < count; i++)
        {
            HPComponent player_hp     = new HPComponent();
            AIEntity    mAIEntity     = new AIEntity();
            UEntity     mPlayer       = new UEntity();
            UEntity     mPlayerLast   = new UEntity();
            HPComponent playerLast_hp = new HPComponent();

            ECSWorld.MainWorld.registerEntityAfterInit(mAIEntity);

            ECSWorld.MainWorld.registerEntityAfterInit(mPlayer);

            mAIEntity.mAI     = AI;
            mAIEntity.mPlayer = player;
            mAIEntity.AIPos   = initpos [Random.Range(0, initpos.Length)].transform.position;
            mAIEntity.Init();
            mAIEntity.GetComponent <LODComponent> ().isUse = isUseLOD;
            mAIEntity.AddComponent <myAI> (new myAI());
            mAIEntity.GetComponent <myAI> ().mRoundCenter = mAIEntity.AIPos;
            mAIEntity.GetComponent <BaseAIComponent> ().mAIRT.SetActive(true);
            mAIEntity.PlayerEntity = mPlayer;
            mAIEntity.GetComponent <HPComponent> ().allHP  = 500;
            mAIEntity.GetComponent <HPComponent> ().tempHP = 500;
            animator = mAIEntity.GetComponent <BaseAIComponent> ().mAIRT.GetComponent <Animator> ();
            mAIEntity.GetComponent <AIAnimation> ().mAnimator = animator;

            mAIEntity.GetComponent <AIAnimation> ().Add("Walk", walkAnim);
            mAIEntity.GetComponent <AIAnimation> ().Add("Idle", idleAnim);

            int id_round = mAIEntity.GetComponent <AIState> ().AddExecuter(roundstate, roundExit, EmptyExitAndEnter.EmptyEnter);

            int id_idle = mAIEntity.GetComponent <AIState> ().AddExecuter(Idlestate, EmptyExitAndEnter.EmptyExit, EmptyExitAndEnter.EmptyEnter);

            mAIEntity.GetComponent <AIState> ().AddEdge(yali, EmptyFeedbacker.Run, id_round, id_idle);

            mAIEntity.GetComponent <AIState> ().AddEdge(yali, EmptyFeedbacker.Run, id_idle, id_round);


            mAIEntity.GetComponent <AIState> ().AddAnimation(roundstate, "Walk");

            mAIEntity.GetComponent <AIState> ().AddAnimation(Idlestate, "Idle");

            mAIEntity.GetComponent <AIState> ().tempID         = id_round;
            mAIEntity.GetComponent <AIState> ().mStateRecorder = mRecorder;
            mAIEntity.GetComponent <AIState> ().LastEntityData.AddComponent <HPComponent> (new HPComponent());
            mAIEntity.GetComponent <AIState> ().LastEntityData.PlayerEntity = mPlayerLast;
            mPlayerLast.AddComponent <HPComponent> (playerLast_hp);
            player_hp.allHP  = 700;
            player_hp.tempHP = 700;
            mPlayer.AddComponent <HPComponent> (player_hp);
        }
    }