Ejemplo n.º 1
0
 public void Init(CorpseData d)
 {
     name             = Prefab.name;
     mMode            = d.CurrentMode;
     mCoprseModeEvent = d.ModeEvent;
     mAni.Play(gameObject.name, 0, UnityEngine.Random.Range(0f, 1f));
 }
Ejemplo n.º 2
0
    public static GameObject[] CreateCorpseOrNull(Transform __mobPos, CorpseData corpseData)
    {
        if (corpseData.SpawnCount == 0)
        {
            return(null);
        }
        var corpse = corpseData.Corpse;

        Vector2 mobPos = __mobPos.position;
        Vector2 size   = corpse.GetComponent <BoxCollider2D>().size;

        size.x *= corpse.transform.localScale.x;
        size.y *= corpse.transform.localScale.y;

        int MobCount = corpseData.SpawnCount;

        GameObject[] gObj = new GameObject[MobCount];

        for (int i = 0; i < MobCount; i++)
        {
            var w = Random.insideUnitCircle;

            var spawnedCorpse = corpse.Spawn(mobPos + w * 0.3f);
            spawnedCorpse.Init(corpseData);

            gObj[i] = spawnedCorpse.gameObject;
        }

        return(gObj);
    }
Ejemplo n.º 3
0
        public override void ProcessValuesUpdate(Packet packet, UpdateMask updateMask)
        {
            base.ProcessValuesUpdate(packet, updateMask);

            var corpseUpdateMask = updateMask.LeftShift(ObjectData.BitCount);

            CorpseData.ProcessValuesUpdate(packet, corpseUpdateMask);
        }
Ejemplo n.º 4
0
    // DBデータからの死亡キャラの生成
    void MakeDead(CorpseData corpseData)
    {
        GameObject deadPlayer = Instantiate(playerPrefab,
                                            corpseData.pos, playerPrefab.transform.rotation);

        PlayerManager playerManager = deadPlayer.GetComponent <PlayerManager>();

        playerManager.MySetDead(corpseData.name, corpseData.objectId);
    }
Ejemplo n.º 5
0
        public Corpse(CorpseType type = CorpseType.Bones) : base(type != CorpseType.Bones)
        {
            m_type          = type;
            ObjectTypeId    = TypeId.Corpse;
            ObjectTypeMask |= TypeMask.Corpse;

            m_updateFlag.Stationary = true;

            m_corpseData = new CorpseData();

            m_time = Time.UnixTime;
        }
    // ----------
    public void AddData(string name, Vector2 pos)
    {
        // しきい値以下のデータは登録しない
        if (pos.x < PlayData.dbThrMinX)
        {
            return;
        }

        CorpseData corpseData = new CorpseData(name, pos);

        SaveData(corpseData);
    }
    void SaveData(CorpseData corpseData)
    {
        // CorpseDataというクラスを作成、サーバーに存在していなければ送信時に自動作成される。
        NCMBObject dbClass = new NCMBObject("CorpseData");

        dbClass["name"]     = corpseData.name;
        dbClass["posx"]     = corpseData.pos.x;
        dbClass["posy"]     = corpseData.pos.y;
        dbClass["deadTime"] = corpseData.deadTime;

        //データ送信
        dbClass.SaveAsync();
    }
    // ---------
    public void LoadData()
    {
        PlayData.loadDB.Value = false;

        // DeadDataからデータを取得する
        NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("CorpseData");

        query.Limit = PlayData.restoreCount;
        query.OrderByDescending("updateDate");

        //データを検索し取得
        query.FindAsync((List <NCMBObject> objectList, NCMBException e) =>
        {
            //取得失敗
            if (e != null)
            {
                //エラーコード表示
                Debug.Log(e.ToString());
                return;
            }

            //取得した全データのmessageを表示
            foreach (NCMBObject ncmbObject in objectList)
            {
                CorpseData corpseData = new CorpseData(ncmbObject);

                // しきい値以下のデータは削除する
                if (corpseData.pos.x < PlayData.dbThrMinX)
                {
                    DeleateData(corpseData.objectId);
                    continue;
                }

                corpseList.Add(corpseData);
            }

            PlayData.loadDB.Value = true;
        });
    }