Ejemplo n.º 1
0
 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();
             }
         }
     }
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
 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);
                 }
             }
         }
     }
 }
Ejemplo n.º 4
0
 private void Update()
 {
     if (idMon >= 0)
     {
         MonDesc desc = MonManager.Instance.GetDesc(idMon);
         if (desc == null)
         {
             Object.Destroy(base.gameObject);
         }
     }
 }
Ejemplo n.º 5
0
 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);
         }
     }
 }
Ejemplo n.º 6
0
    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));
                    }
                }
            }
        }
    }
Ejemplo n.º 7
0
    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);
    }