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); } }
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; } }
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)); } }
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); }
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); }
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()); }
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); }
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(); } }
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()); } }
protected override void OnHide() { base.OnHide(); _targetTrans = null; _tamingRoot.SetActive(false); _tameFailedRoot.SetActive(false); _tameSucceedRoot.SetActive(false); }
public void SetTrans(PeTrans trans) { if (trans) { _targetTrans = trans; InitRotate = _targetTrans.transform.rotation; } }
public void LoadTameSucceed(PeEntity playerEntity, PeEntity monsterEntity, Transform ridePosTrans) { _curTameState = TameState.TameSucceed; _monsterEntity = monsterEntity; _playerEntity = playerEntity; _playerTrans = _playerEntity.peTrans; _ridePosTrans = ridePosTrans; SetMonsterAiState(false); }
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); } }
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(); }
public static Vector3 GetForward(this PeEntity entity) { PeTrans trans = entity.peTrans; if (null == trans) { return(Vector3.zero); } return(trans.forward); }
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()); }
public void CollectColliders() { _peTrans = GetComponent <PeTrans> (); ClearCollider(); Collider[] cols = GetComponentsInChildren <Collider>(true); foreach (Collider col in cols) { //if (col.enabled) //{ mCollider.Add(col); //} } }
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); }
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()); }
public Vector3 GetPlayerPos() { PeTrans playerTrans = null; if (playerTrans == null) { playerTrans = PeCreature.Instance.mainPlayer.peTrans; } if (playerTrans == null) { return(Vector3.zero); } return(playerTrans.position); }
public static void ExtSetRot(this PeEntity entity, Quaternion value) { if (null == entity) { return; } PeTrans trans = entity.peTrans; if (null == trans) { return; } trans.rotation = value; }
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); }
public static void ExtSetPos(this PeEntity entity, Vector3 value) { if (null == entity) { return; } PeTrans trans = entity.peTrans; if (null == trans) { return; } trans.position = value; }
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); }
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); } }
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); }
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); } }