public void Hit(int seq, int damage, float rigidFactor, int weaponBy, Vector3 ammopos, Vector3 ammodir, int curammo) { if (damage > 0) { MonDesc desc = GetDesc(seq); if (desc != null) { desc.rigidity = rigidFactor; desc.Xp -= damage; desc.LogAttacker(MyInfoManager.Instance.Seq, damage); desc.IsHit = true; if (!GlobalVars.Instance.applyNewP2P) { P2PManager.Instance.SendPEER_MON_HIT(MyInfoManager.Instance.Seq, desc.Seq, damage, rigidFactor, ammopos, ammodir, curammo); } if (desc.Xp <= 0) { P2PManager.Instance.SendPEER_MON_DIE(desc.Seq, arrived: false); CSNetManager.Instance.Sock.SendCS_INFLICTED_DAMAGE_REQ(desc.dicInflictedDamage); CSNetManager.Instance.Sock.SendCS_KILL_LOG_REQ(0, MyInfoManager.Instance.Seq, 1, desc.Seq, weaponBy, -1, -1, 0, desc.dicDamageLog); desc.clearLog(); } } } }
private void Update() { if (forceDead) { Elapsedtime += Time.deltaTime; if (Elapsedtime > 1f) { Object.DestroyImmediate(base.gameObject); return; } } if (hitParent != null) { if (isHuman) { BrickManDesc desc = BrickManManager.Instance.GetDesc(parentSeq); if (desc != null && desc.Hp <= 0) { forceDead = true; } } else { MonDesc desc2 = MonManager.Instance.GetDesc(parentSeq); if (desc2 != null && desc2.Xp <= 0) { forceDead = true; } } base.gameObject.transform.parent = hitParent; } }
public void SendMonAll() { if (dicDescriptor != null && dicDescriptor.Count != 0) { foreach (KeyValuePair <int, MonDesc> item in dicDescriptor) { MonDesc value = item.Value; if (value != null) { GameObject gameObject = Get(value.Seq); if (gameObject != null) { Transform transform = gameObject.transform; P2PManager instance = P2PManager.Instance; int tblID = value.tblID; int typeID = value.typeID; int seq = value.Seq; Vector3 position = transform.position; float x = position.x; Vector3 position2 = transform.position; float y = position2.y; Vector3 position3 = transform.position; float z = position3.z; Vector3 forward = transform.forward; float x2 = forward.x; Vector3 forward2 = transform.forward; float y2 = forward2.y; Vector3 forward3 = transform.forward; instance.SendPEER_MON_GEN(tblID, typeID, seq, x, y, z, x2, y2, forward3.z); } } } } }
private void Update() { if (idMon >= 0) { MonDesc desc = MonManager.Instance.GetDesc(idMon); if (desc == null) { Object.Destroy(base.gameObject); } } }
public void OnEnter(int tbl, int type, int seq, int xp, bool bP2P, int dp) { if (!dicDescriptor.ContainsKey(seq)) { MonDesc monDesc = new MonDesc(tbl, type, seq, xp, bP2P, dp); dicDescriptor.Add(seq, monDesc); if (NeedGameObjectOnEnter()) { AddMon(monDesc); } } }
private void DividePoint(int seq, int Hp, int totPoint) { MonDesc desc = GetDesc(seq); if (desc != null) { foreach (KeyValuePair <int, int> item in desc.dicDamageLog) { float num = (float)item.Value / (float)Hp; if (MyInfoManager.Instance.Seq != item.Key) { P2PManager.Instance.SendPEER_MON_ADDPOINT(item.Key, (int)((float)totPoint * num)); } else { Defense component = GameObject.Find("Main").GetComponent <Defense>(); if (component != null) { component.AddDefensePoint(bRed: true, (int)((float)totPoint * num)); } } } } }
public GameObject AddMon(MonDesc desc) { SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.DEFENCE_SPAWNER, 0); if (spawner == null) { return(null); } Vector3 position = spawner.position; GameObject gameObject = null; if (desc.tblID == 0) { gameObject = (Object.Instantiate((Object)bee01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject); } else if (desc.tblID == 1) { gameObject = (Object.Instantiate((Object)bee02, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject); } else if (desc.tblID == 2) { gameObject = (Object.Instantiate((Object)intruder01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject); } else if (desc.tblID == 3) { gameObject = (Object.Instantiate((Object)bomber01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject); } else if (desc.tblID == 4) { gameObject = (Object.Instantiate((Object)champ01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject); } if (null == gameObject) { Debug.LogError("Fail to instantiate a monster: " + desc.tblID); return(null); } MonProperty component = gameObject.GetComponent <MonProperty>(); if (null == component) { Object.DestroyImmediate(gameObject); Debug.LogError("New monster doesnt have MonProperty: " + desc.tblID); return(null); } component.Desc = desc; component.Desc.coreToDmg = DefenseManager.Instance.GetMonTable(desc.tblID).toCoreDmg; component.Desc.InitLog(); component.InvisiblePosition = position; MonAI aIClass = Instance.GetAIClass(gameObject, desc.tblID); if (null == aIClass) { Object.DestroyImmediate(gameObject); Debug.LogError("New monster doesnt have monAI: " + desc.tblID); return(null); } aIClass.StartPosition = position; aIClass.moveSpeed = DefenseManager.Instance.GetMonTable(desc.typeID).MoveSpeed; aIClass.MonType = (MonAI.MON_TYPE)desc.typeID; dicMon.Add(desc.Seq, gameObject); aIClass.changeTexture(); if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master) { P2PManager instance = P2PManager.Instance; int tblID = desc.tblID; int typeID = desc.typeID; int seq = desc.Seq; float x = position.x; float y = position.y; float z = position.z; Vector3 forward = gameObject.transform.forward; float x2 = forward.x; Vector3 forward2 = gameObject.transform.forward; float y2 = forward2.y; Vector3 forward3 = gameObject.transform.forward; instance.SendPEER_MON_GEN(tblID, typeID, seq, x, y, z, x2, y2, forward3.z); } return(gameObject); }