public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        base.OnStateEnter(animator, stateInfo, layerIndex);

        if (m_IKs == null)
        {
            GetIKs(animator.transform);
        }

        if (m_Target == null)
        {
            m_Target = animator.GetComponentInParent <TargetCmpt>();
        }

        if (m_Trans == null)
        {
            m_Trans = animator.GetComponentInParent <PeTrans>();
        }

        if (m_Target == null || m_Target.GetAttackEnemy() == null)
        {
            return;
        }

        if (m_IKs == null || m_IKs.Length <= 0)
        {
            return;
        }

        if (m_Trans != null)
        {
            GetPoint(m_Trans.trans, m_Target.GetAttackEnemy().position);
        }
    }
Exemple #2
0
    public void SetTameState(TameMonsterManager.TameState tameState)
    {
        _curTameState = tameState;
        switch (tameState)
        {
        case TameMonsterManager.TameState.None:
            _tamingRoot.SetActive(false);
            _targetTrans = null;
            break;

        case TameMonsterManager.TameState.Taming:
            StopAllCoroutines();
            _tamingRoot.SetActive(true);
            _tameFailedRoot.SetActive(false);
            _tameSucceedRoot.SetActive(false);
            break;

        case TameMonsterManager.TameState.TameSucceed:
            _tamingRoot.SetActive(false);
            _tameFailedRoot.SetActive(false);
            _tameSucceedRoot.SetActive(true);
            PlayTween(_tameSucceedTween, _tameSucceedRoot);
            break;

        case TameMonsterManager.TameState.TameFailed:
            _tamingRoot.SetActive(false);
            _tameFailedRoot.SetActive(true);
            _tameSucceedRoot.SetActive(false);
            PlayTween(_tameFailedTween, _tameFailedRoot);
            _targetTrans = null;
            break;
        }
    }
Exemple #3
0
        Vector3 GetPatrolPosition(Tree sender)
        {
            BehaveGroup group = sender.ActiveAgent as BehaveGroup;

            if (group == null || group.Leader == null)
            {
                return(Vector3.zero);
            }

            PeTrans tr  = group.Leader.GetComponent <PeTrans>();
            Vector3 pos = tr.position;

            if (m_Data.field == (int)MovementField.water)
            {
                return(PEUtil.GetRandomPositionInWater(pos, tr.trans.forward, m_Data.minRadius, m_Data.maxRadius, m_Data.minHeight, m_Data.maxHeight, -135.0f, 135.0f));
            }
            else if (m_Data.field == (int)MovementField.Sky)
            {
                if (group.Leader.IsFly)
                {
                    return(PEUtil.GetRandomPositionInSky(pos, tr.trans.forward, m_Data.minRadius, m_Data.maxRadius, m_Data.minHeight, m_Data.maxHeight, -135.0f, 135.0f));
                }
                else
                {
                    return(PEUtil.GetRandomPositionOnGround(pos, tr.trans.forward, m_Data.minRadius, m_Data.maxRadius, -135.0f, 135.0f));
                }
            }
            else
            {
                return(PEUtil.GetRandomPositionOnGround(pos, tr.trans.forward, m_Data.minRadius, m_Data.maxRadius, -135.0f, 135.0f));
            }
        }
Exemple #4
0
        BehaveResult Tick(Tree sender)
        {
            BehaveGroup group = sender.ActiveAgent as BehaveGroup;

            if (group == null || group.Leader == null)
            {
                return(BehaveResult.Failure);
            }

            if (group.EscapeEnemy == null)
            {
                return(BehaveResult.Failure);
            }

            if (m_CurEscapeposition == Vector3.zero ||
                PEUtil.SqrMagnitudeH(group.Leader.position, m_CurEscapeposition) < 1.0f * 1.0f ||
                Time.time - m_LastRandomTime > 10.0f)
            {
                m_LastRandomTime = Time.time;

                PeTrans tr = group.Leader.GetComponent <PeTrans>();
                m_CurEscapeposition = GetEscapePosition(group, tr.position, tr.position - group.EscapeEnemy.position, 25.0f, 35.0f);
                if (m_CurEscapeposition == Vector3.zero)
                {
                    return(BehaveResult.Failure);
                }
                else
                {
                    group.MoveToPosition(m_CurEscapeposition, SpeedState.Run);
                }
            }

            return(BehaveResult.Running);
        }
Exemple #5
0
    static bool InitNpcWithDb(PeEntity entity, Mono.Data.SqliteClient.SqliteDataReader reader)
    {
        string strTemp = reader.GetString(reader.GetOrdinal("startpoint"));

        string[] pos = strTemp.Split(',');
        if (pos.Length < 3)
        {
            Debug.LogError("Npc's StartPoint is Error");
        }
        else
        {
            float   x    = System.Convert.ToSingle(pos[0]);
            float   y    = System.Convert.ToSingle(pos[1]);
            float   z    = System.Convert.ToSingle(pos[2]);
            PeTrans view = entity.peTrans;
            if (null != view)
            {
                view.position = new Vector3(x, y, z);
            }

            NpcCmpt cmpt = entity.NpcCmpt;
            if (null != cmpt)
            {
                cmpt.FixedPointPos = new Vector3(x, y, z);
            }
        }
        SetNpcMoney(entity, reader.GetString(reader.GetOrdinal("money")));
        AddWeaponItem(entity, reader.GetString(reader.GetOrdinal("weapon")), reader.GetString(reader.GetOrdinal("item")));
        SetNpcAbility(entity, reader.GetString(reader.GetOrdinal("speciality")));
        return(true);
    }
Exemple #6
0
    public void InitInMultiMode(CSEntity m_Entity, int ownerId)
    {
        m_Type             = GetMTypeFromProtoId(itemDrag.itemObj.protoId);
        this.m_Entity      = m_Entity;
        m_Entity.gameLogic = gameObject;

        _peEntity                    = gameObject.GetComponent <PeEntity>();
        _peTrans                     = gameObject.GetComponent <PeTrans>();
        _skEntity                    = gameObject.GetComponent <PESkEntity>();
        _skEntity.m_Attrs            = new PESkEntity.Attr[5];
        _skEntity.m_Attrs[0]         = new PESkEntity.Attr();
        _skEntity.m_Attrs[1]         = new PESkEntity.Attr();
        _skEntity.m_Attrs[2]         = new PESkEntity.Attr();
        _skEntity.m_Attrs[3]         = new PESkEntity.Attr();
        _skEntity.m_Attrs[4]         = new PESkEntity.Attr();
        _skEntity.m_Attrs[0].m_Type  = AttribType.HpMax;
        _skEntity.m_Attrs[1].m_Type  = AttribType.Hp;
        _skEntity.m_Attrs[2].m_Type  = AttribType.CampID;
        _skEntity.m_Attrs[3].m_Type  = AttribType.DefaultPlayerID;
        _skEntity.m_Attrs[4].m_Type  = AttribType.DamageID;
        _skEntity.m_Attrs[0].m_Value = m_Entity.MaxDurability;
        _skEntity.m_Attrs[1].m_Value = m_Entity.CurrentDurability;
        _skEntity.m_Attrs[2].m_Value = 1;
        _skEntity.m_Attrs[3].m_Value = ownerId;
        PeEntity ownerEntity = EntityMgr.Instance.Get(ownerId);

        if (ownerEntity != null)
        {
            _skEntity.m_Attrs[2].m_Value = ownerEntity.GetAttribute(AttribType.CampID);
            _skEntity.m_Attrs[4].m_Value = ownerEntity.GetAttribute(AttribType.DamageID);
        }

        _skEntity.onHpChange += OnHpChange;
        if (m_Type == CSConst.ObjectType.Assembly)
        {
            _skEntity.onHpChange += SendHpChangeMessage;
        }
        _skEntity.deathEvent += OnDeathEvent;
        _skEntity.InitEntity();
        OnHpChange(_skEntity, 0);
        EntityMgr.Instance.InitEntity(InstanceId, _peEntity.gameObject);

        //if(m_Type == CSConst.ObjectType.Processing)
        //{
        //    network.InitResultPos(m_ResultTrans);
        //}

        m_Entity.m_MgCreator.AddLogic(id, this);

        if (CSMain.s_MgCreator == m_Entity.m_MgCreator && m_Entity as CSAssembly != null)
        {
            //Vector3 travelPos = gameObject.transform.position + new Vector3(0, 2, 0);
            if (travelTrans != null)
            {
                //travelPos = travelTrans.position;
            }
        }

        StartCoroutine(SetFirstConstruct());
    }
Exemple #7
0
        bool _initDoodad(PeEntity entity, DoodadSpawnPoint sp)
        {
            if (entity == null)
            {
                Debug.LogError("The entity that given is null");
                return(false);
            }

            PeTrans view = entity.peTrans;

            if (null == view)
            {
                Debug.LogError("[SceneEntityCreator]No viewCmpt in doodad:" + sp.Prototype);
                return(false);
            }

            view.position = sp.spawnPos;
            view.rotation = sp.Rotation;
            view.scale    = sp.Scale;

            SceneDoodadLodCmpt lod = entity.GetCmpt <SceneDoodadLodCmpt> ();

            if (lod != null)
            {
                lod.IsShown     = sp.Visible;
                lod.IsDamagable = sp.IsTarget;
            }

            return(true);
        }
Exemple #8
0
    public void StartTame(PeEntity playerEntity, PeEntity monsterEntity, Transform ridePosTrans)
    {
        if (monsterEntity && playerEntity)
        {
            _monsterEntity = monsterEntity;
            _playerEntity  = playerEntity;
            _playerTrans   = _playerEntity.peTrans;
            _ridePosTrans  = ridePosTrans;

            InitDropIsRanges();

            _monsterEntity.monstermountCtrl.InitTame(_playerEntity);
            //lz-2017.01.10 初始世界旋转度
            _initRotate = _playerTrans.rotation.eulerAngles;

            _inputCtrl = _ridePosTrans.gameObject.AddComponent <TameMonsterInputCtrl>();
            _inputCtrl.SetTrans(_playerEntity.peTrans);

            if (UITameMonsterCtrl.Instance)
            {
                UITameMonsterCtrl.Instance.Show();
                UITameMonsterCtrl.Instance.SetInfo(_playerEntity.peTrans);
            }

            _analogStruggle = _ridePosTrans.gameObject.AddComponent <AnalogMonsterStruggle>();
            _analogStruggle.SetInfo(_monsterEntity, ridePosTrans);

            Taming();
        }
    }
Exemple #9
0
    void Start()
    {
        if (!GameConfig.IsMultiMode)
        {
            m_Type = GetMTypeFromProtoId(itemDrag.itemObj.protoId);
            CSMgCreator creator = CSMain.s_MgCreator;
            if (creator != null)
            {
                CSEntityAttr attr = new CSEntityAttr();
                attr.m_InstanceId = InstanceId;
                attr.m_protoId    = protoId;
                attr.m_Type       = (int)m_Type;
                attr.m_Pos        = transform.position;
                attr.m_LogicObj   = gameObject;
                //attr.m_Bound = GetObjectBounds();
                //attr.m_Bound.center = transform.TransformPoint(attr.m_Bound.center);
                //attr.m_ColonyBase = _ColonyObj;
                int r = creator.CreateEntity(attr, out m_Entity);
                if (r != CSConst.rrtSucceed)
                {
                    Debug.LogError("Error with Init Entities");
                    return;
                }
                _peEntity                    = gameObject.GetComponent <PeEntity>();
                _peTrans                     = gameObject.GetComponent <PeTrans>();
                _skEntity                    = gameObject.GetComponent <PESkEntity>();
                _skEntity.m_Attrs            = new PESkEntity.Attr[5];
                _skEntity.m_Attrs[0]         = new PESkEntity.Attr();
                _skEntity.m_Attrs[1]         = new PESkEntity.Attr();
                _skEntity.m_Attrs[2]         = new PESkEntity.Attr();
                _skEntity.m_Attrs[3]         = new PESkEntity.Attr();
                _skEntity.m_Attrs[4]         = new PESkEntity.Attr();
                _skEntity.m_Attrs[0].m_Type  = AttribType.HpMax;
                _skEntity.m_Attrs[1].m_Type  = AttribType.Hp;
                _skEntity.m_Attrs[2].m_Type  = AttribType.CampID;
                _skEntity.m_Attrs[3].m_Type  = AttribType.DefaultPlayerID;
                _skEntity.m_Attrs[4].m_Type  = AttribType.DamageID;
                _skEntity.m_Attrs[0].m_Value = m_Entity.MaxDurability;
                _skEntity.m_Attrs[1].m_Value = m_Entity.CurrentDurability;
                _skEntity.m_Attrs[2].m_Value = PeCreature.Instance.mainPlayer.GetAttribute(AttribType.CampID);
                _skEntity.m_Attrs[3].m_Value = ForceConstant.PLAYER;
                _skEntity.m_Attrs[4].m_Value = PeCreature.Instance.mainPlayer.GetAttribute(AttribType.DamageID);

                _skEntity.onHpChange += OnHpChange;
                if (m_Type == CSConst.ObjectType.Assembly)
                {
                    _skEntity.onHpChange += SendHpChangeMessage;
                }
                _skEntity.deathEvent += OnDeathEvent;
                _skEntity.InitEntity();
                m_Entity.onDuraChange = SetHp;
                OnHpChange(_skEntity, 0);
                int entityId = Pathea.WorldInfoMgr.Instance.FetchNonRecordAutoId();
                EntityMgr.Instance.InitEntity(entityId, _peEntity.gameObject);
                creator.AddLogic(id, this);
            }
            StartCoroutine(SetFirstConstruct());
        }
    }
Exemple #10
0
 protected override void OnHide()
 {
     base.OnHide();
     _targetTrans = null;
     _tamingRoot.SetActive(false);
     _tameFailedRoot.SetActive(false);
     _tameSucceedRoot.SetActive(false);
 }
Exemple #11
0
 public void SetTrans(PeTrans trans)
 {
     if (trans)
     {
         _targetTrans = trans;
         InitRotate   = _targetTrans.transform.rotation;
     }
 }
Exemple #12
0
 public void LoadTameSucceed(PeEntity playerEntity, PeEntity monsterEntity, Transform ridePosTrans)
 {
     _curTameState  = TameState.TameSucceed;
     _monsterEntity = monsterEntity;
     _playerEntity  = playerEntity;
     _playerTrans   = _playerEntity.peTrans;
     _ridePosTrans  = ridePosTrans;
     SetMonsterAiState(false);
 }
Exemple #13
0
 public void SetInfo(PeTrans trans)
 {
     if (trans)
     {
         _targetTrans = trans;
         _zRange      = GetRange(_targetTrans.rotation.eulerAngles.z, TameMonsterConfig.instance.MaxRotate);
         _xRange      = GetRange(_targetTrans.rotation.eulerAngles.x, TameMonsterConfig.instance.MaxRotate);
     }
 }
Exemple #14
0
            public static Transform ExtGetTrans(this PeEntity entity)
            {
                PeTrans tr = entity.peTrans;

                if (null == tr)
                {
                    return(null);
                }
                return(tr.trans);
            }
    void Awake()
    {
        FlagEntity   = gameObject.AddComponent <PeEntity>();
        FlagTrans    = gameObject.AddComponent <PeTrans>();
        FlagSkEntity = gameObject.AddComponent <PESkEntity>();

        FlagSkEntity.onHpChange += OnHpChange;
        FlagSkEntity.deathEvent += OnDeathEvent;
        FlagSkEntity.InitEntity();
    }
Exemple #16
0
            public static Vector3 GetForward(this PeEntity entity)
            {
                PeTrans trans = entity.peTrans;

                if (null == trans)
                {
                    return(Vector3.zero);
                }

                return(trans.forward);
            }
Exemple #17
0
    public override void OnSpawned(GameObject go)
    {
        base.OnSpawned(go);

        cc = go.GetComponent <WhiteCat.BehaviourController>();

//		cc.creationData.m_Hp = HP;
//		cc.creationData.m_Fuel = Fuel;
        _viewTrans          = go.GetComponent <PeTrans> ();
        _viewTrans.position = transform.position;

        StartCoroutine(AuthorityCheckCoroutine());
    }
Exemple #18
0
 public void CollectColliders()
 {
     _peTrans = GetComponent <PeTrans> ();
     ClearCollider();
     Collider[] cols = GetComponentsInChildren <Collider>(true);
     foreach (Collider col in cols)
     {
         //if (col.enabled)
         //{
         mCollider.Add(col);
         //}
     }
 }
Exemple #19
0
    public void SaveOutOfDungeon()
    {
        PeTrans view = PeCreature.Instance.mainPlayer.peTrans;

        if (view == null)
        {
            return;
        }
        Vector3 pos = view.position;

        SaveInDungeon();
        ArchiveMgr.Instance.Save(ArchiveMgr.ESave.Auto1);
        TransBackToDungeon(pos);
    }
Exemple #20
0
    public void TransBackToDungeon(Vector3 pos)
    {
        PeTrans view = PeCreature.Instance.mainPlayer.peTrans;

        if (view == null)
        {
            return;
        }
        view.position = pos;
        MissionManager.Instance.TransMissionFollower(pos);
        TransFollower(pos);
        SinglePlayerTypeLoader singlePlayerTypeLoader = SinglePlayerTypeArchiveMgr.Instance.singleScenario;

        singlePlayerTypeLoader.SetYirdName(AdventureScene.Dungen.ToString());
    }
Exemple #21
0
    public Vector3 GetPlayerPos()
    {
        PeTrans playerTrans = null;

        if (playerTrans == null)
        {
            playerTrans = PeCreature.Instance.mainPlayer.peTrans;
        }

        if (playerTrans == null)
        {
            return(Vector3.zero);
        }

        return(playerTrans.position);
    }
Exemple #22
0
            public static void ExtSetRot(this PeEntity entity, Quaternion value)
            {
                if (null == entity)
                {
                    return;
                }

                PeTrans trans = entity.peTrans;

                if (null == trans)
                {
                    return;
                }

                trans.rotation = value;
            }
Exemple #23
0
            public static Quaternion ExtGetRot(this PeEntity entity)
            {
                if (null == entity)
                {
                    return(Quaternion.identity);
                }

                PeTrans trans = entity.peTrans;

                if (null == trans)
                {
                    return(Quaternion.identity);
                }

                return(trans.rotation);
            }
Exemple #24
0
            public static void ExtSetPos(this PeEntity entity, Vector3 value)
            {
                if (null == entity)
                {
                    return;
                }

                PeTrans trans = entity.peTrans;

                if (null == trans)
                {
                    return;
                }

                trans.position = value;
            }
Exemple #25
0
            public static Vector3 ExtGetPos(this PeEntity entity)
            {
                if (null == entity)
                {
                    return(Vector3.zero);
                }

                PeTrans trans = entity.peTrans;

                if (null == trans)
                {
                    return(Vector3.zero);
                }

                return(trans.position);
            }
Exemple #26
0
    public void LoadTameSucceed(PeEntity playerEntity, PeEntity monsterEntity, Transform ridePosTrans, bool isNew)
    {
        _curTameState  = TameState.TameSucceed;
        _monsterEntity = monsterEntity;
        _playerEntity  = playerEntity;
        _playerTrans   = _playerEntity.peTrans;
        _ridePosTrans  = ridePosTrans;
        SetMonsterAiState(false);

        _monsterEntity.monstermountCtrl.InitTame(_playerEntity);
        _monsterEntity.monstermountCtrl.TameSucceed();
        if (isNew && _playerEntity.mountCmpt)
        {
            _playerEntity.mountCmpt.SetMount(_monsterEntity);
        }
    }
Exemple #27
0
        PeEntity CreateNpc(NPCSpawnPoint point)
        {
            PeEntity entity = null;

            if (point.EntityID == -1)
            {
                int id = Pathea.WorldInfoMgr.Instance.FetchRecordAutoId();
                entity         = CreatureMgr.Instance.CreateNpc(CustomGameData.Mgr.Instance.curGameData.WorldIndex, id, point.Prototype);
                point.EntityID = entity.Id;
                entity.ExtSetName(new CharacterName(point.Name));

                PeTrans view = entity.peTrans;
                if (null == view)
                {
                    Debug.LogError("[SceneEntityCreator]No viewCmpt in npc:" + point.Prototype);
                    return(null);
                }

                view.position = point.spawnPos;
                view.rotation = point.Rotation;
                view.scale    = point.Scale;
            }
            else
            {
                entity = CreatureMgr.Instance.CreateNpc(CustomGameData.Mgr.Instance.curGameData.WorldIndex, point.EntityID, point.Prototype);
                if (entity == null)
                {
                    Debug.LogError("Cant Finde the Entity [ID " + point.EntityID.ToString() + "]");
                }
            }

            if (entity != null)
            {
                entity.scenarioId = point.ID;
                entity.SetAttribute(AttribType.DefaultPlayerID, point.PlayerIndex);

                entity.SetBirthPos(point.spawnPos);
                PeScenarioEntity pse = entity.gameObject.GetComponent <PeScenarioEntity>();
                if (pse == null)
                {
                    pse = entity.gameObject.AddComponent <PeScenarioEntity>();
                }
                pse.spawnPoint = point;
            }

            return(entity);
        }
        BehaveResult Init(Tree sender)
        {
            if (!NpcTypeDb.CanRun(NpcCmdId, ENpcControlType.Recourse))
            {
                return(BehaveResult.Failure);
            }

            float Hp    = GetAttribute(AttribType.Hp);
            float HpMax = GetAttribute(AttribType.HpMax);

//			Request req = GetRequest(EReqType.FollowPath) as RQFollowPath;
//			if(req != null && !req.CanRun())
//			{
//				specialRecurse = true;
//				specialRecursestartTime = Time.time;
//			}
//			else
//			{
//				specialRecurse = false;
//				specialRecursestartTime = -1;
//				if(req != null && req.CanRun())
//				{
//					if(entity.target != null && entity.target.GetAttackEnemy() != null)
//						entity.target.ClearEnemy();
//
//					return BehaveResult.Success;
//				}
//			}

            if (Hp / HpMax > 0.25f)          //!specialRecurse
            {
                return(BehaveResult.Failure);
            }

            if (PeCreature.Instance != null && PeCreature.Instance.mainPlayer != null && playerTrans == null)
            {
                playerTrans = PeCreature.Instance.mainPlayer.peTrans;
            }

            SetCambat(false);
            hideStarTime  = Time.time;
            checkStarTime = Time.time;
            mfind         = new Pathea.FindHidePos(8.0f, false);
            return(BehaveResult.Running);
        }
Exemple #29
0
 public void MoveToPosition(Vector3 pos, SpeedState speed = SpeedState.Walk)
 {
     foreach (PeEntity skEntity in m_Entities)
     {
         if (skEntity != null && !skEntity.IsDeath())
         {
             Motion_Move mover = skEntity.GetComponent <Motion_Move>();
             if (mover != null && Leader != null)
             {
                 PeTrans tr1 = mover.GetComponent <PeTrans>();
                 PeTrans tr2 = Leader.GetComponent <PeTrans>();
                 if (tr1 != null && tr2 != null)
                 {
                     float r = 3 * Random.value * Mathf.Max(1.0f, Mathf.Max(tr1.radius, tr2.radius));
                     mover.MoveTo(pos + (tr1.position - tr2.position).normalized * r, speed);
                 }
             }
         }
     }
 }
    void Update()
    {
        PeGrassSystem.SetWaveTexture(GrassWaveRenderer.RenderTarget);
        if (GrassWaveRenderer.RenderTarget != null)
        {
            Vector4 wave_center = Vector4.zero;
            if (Pathea.PeCreature.Instance.mainPlayer == null)
            {
                Vector3 pos = GrassWaveRenderer.transform.position;
                wave_center = new Vector4(pos.x, pos.z, GrassWaveRenderer.RenderTarget.width, GrassWaveRenderer.RenderTarget.height);
            }
            else
            {
                PeTrans trans = Pathea.PeCreature.Instance.mainPlayer.peTrans;
                GrassWaveRenderer.FollowTrans = trans.trans;
                Vector3 pos = GrassWaveRenderer.transform.position;
                wave_center = new Vector4(pos.x, pos.z, GrassWaveRenderer.RenderTarget.width, GrassWaveRenderer.RenderTarget.height);
            }

            PeGrassSystem.SetWaveCenter(wave_center);
        }
    }