예제 #1
0
    public override bool onRemoveItem(int count)
    {
        if (MyItem.Descarded == false)
        {
            return(false);
        }
        else if (count > ItemCount)
        {
            return(false);
        }
        else if (ItemCount - count == 0)
        {
            MyItem.onRemove();
            MyItem.Owner.ItemList.Remove(MyItem);

            MyIcon.sprite = DefaultIcon;
            CountComponent.SetActive(false);
            CDComponent.SetActive(false);
            MyItem = null;
        }
        else
        {
            updateItemInfo(MyItem, ItemCount - count);
            MyItem.onRemove();
        }
        return(true);
    }
예제 #2
0
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            CommandComponent     cc  = list[i].GetComp <CommandComponent>();
            CDComponent          cdc = list[i].GetComp <CDComponent>();
            SkillStatusComponent ssc = list[i].GetComp <SkillStatusComponent>();

            cdc.CD -= deltaTime;

            if (cc.skillDir.ToVector() != Vector3.zero &&
                cc.isFire &&
                cdc.CD <= 0)
            {
                cdc.CD = 2 * 1000;

                Debug.Log("FIRE!!!");

                //FIRE!!!
                string skillID = "2000";

                ssc.m_skillTime        = 0;
                ssc.m_isTriggerSkill   = false;
                ssc.m_skillStstus      = SkillStatusEnum.Before;
                ssc.m_currentSkillData = ssc.GetSkillData(skillID);
                ssc.m_currentSkillData.UpdateInfo();
            }
        }
    }
예제 #3
0
    private void AddShieldComponent()
    {
        CDComponent shieldCD = new CDComponent(this.m_UserData, LogicTimer.Instance.CurrentTime);

        this.m_ShieldCDComponent             = shieldCD;
        this.m_ShieldCDComponent.CDFinished += ShieldCDFinish;
        this.AddComponent(shieldCD);
    }
    public override MomentComponentBase DeepCopy()
    {
        CDComponent cc = new CDComponent();

        cc.ID    = ID;
        cc.Frame = Frame;

        cc.CD = CD;

        return(cc);
    }
예제 #5
0
    private void AddBuff(BuffData buffData)
    {
        BuffLogicData data = new BuffLogicData(buffData);

        this.m_Buffs.Add(buffData, data);
        CDComponent buffCD = new CDComponent(buffData, LogicTimer.Instance.CurrentTime);

        this.m_BuffComponents.Add(buffData, buffCD);
        buffCD.CDFinished += BuffCDFinish;
        this.AddComponent(buffCD);
    }
예제 #6
0
    public PropsLogicObject(PropsData data)
    {
        this.m_Data      = data;
        this.m_LogicData = new PropsLogicData(data);

        if (this.m_Data.RemainingCD != 0)
        {
            this.m_CDComponent = new CDComponent(data, LogicTimer.Instance.CurrentTime);
            this.AddComponent(this.m_CDComponent);
            this.m_CDComponent.CDFinished += CDFinished;
        }
    }
예제 #7
0
 public override void initItemGird(Item item, int count)
 {
     if (item == null)
     {
         MyIcon.sprite = DefaultIcon;
         CountComponent.SetActive(false);
         CDComponent.SetActive(false);
         MyItem = null;
         return;
     }
     item.QSID     = QSID;
     MyItem        = item;
     MyIcon.sprite = item.Icon.sprite;
     ItemCount     = count;
 }
 public void Awake()
 {
     this.heroTransformComponent = this.GetParent <HotfixUnit>().m_ModelUnit.GetComponent <HeroTransformComponent>();
     this.userInputComponent     = ETModel.Game.Scene.GetComponent <UserInputComponent>();
     this.m_CDComponent          = ETModel.Game.Scene.GetComponent <CDComponent>();
     m_QCDInfo          = ReferencePool.Acquire <CDInfo>();
     m_QCDInfo.Interval = 5000;
     m_QCDInfo.Name     = "QCD";
     m_WCDInfo          = ReferencePool.Acquire <CDInfo>();
     m_WCDInfo.Interval = 7000;
     m_WCDInfo.Name     = "WCD";
     m_ECDInfo          = ReferencePool.Acquire <CDInfo>();
     m_ECDInfo.Interval = 10000;
     m_ECDInfo.Name     = "ECD";
     m_CDComponent.AddCDData(this.Entity.Id, m_QCDInfo);
     m_CDComponent.AddCDData(this.Entity.Id, m_WCDInfo);
     m_CDComponent.AddCDData(this.Entity.Id, m_ECDInfo);
 }
예제 #9
0
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            CommandComponent cc  = list[i].GetComp <CommandComponent>();
            CDComponent      cdc = list[i].GetComp <CDComponent>();

            if (cc.isFire)
            {
                ViewComponent  vc = new ViewComponent();
                AssetComponent ac = new AssetComponent();
                ac.m_assetName = "Sphere";

                MoveComponent mc = new MoveComponent();

                mc.m_dirx     = 1;
                mc.m_velocity = 1;

                m_world.CreateEntity(vc, ac, mc);
            }
        }
    }
예제 #10
0
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            CommandComponent     cc  = list[i].GetComp <CommandComponent>();
            CDComponent          cdc = list[i].GetComp <CDComponent>();
            SkillStatusComponent ssc = list[i].GetComp <SkillStatusComponent>();
            PlayerComponent      pc  = list[i].GetComp <PlayerComponent>();

            cdc.CD -= deltaTime;

            //Debug.Log(cc.element1 + " --> " + cc.element2 + " CanFire " + (cdc.CD <= 0));

            if (cc.skillDir.ToVector() != Vector3.zero &&
                cc.isFire &&
                cdc.CD <= 0)
            {
                cdc.CD = 2 * 1000;

                //FIRE!!! 2000 2002技能可用

                string skillID = GetSkillName(cc);

                //Debug.Log("FIRE!!! --> " + skillID);

                ssc.m_skillTime        = 0;
                ssc.m_skillStstus      = SkillStatusEnum.Before;
                ssc.m_isTriggerSkill   = false;
                ssc.m_currentSkillData = ssc.GetSkillData(skillID);
                ssc.m_currentSkillData.UpdateInfo();
                ssc.skillDir = cc.skillDir.DeepCopy();
            }
        }
    }
예제 #11
0
    public void PlayerJoin(EntityBase entity)
    {
        PlayerComponent playerComp = null;

        if (!entity.GetExistComp <PlayerComponent>())
        {
            playerComp = new PlayerComponent();

            playerComp.characterID = "1";
            playerComp.nickName    = "Test model";

            ElementData e1 = new ElementData();
            e1.id  = 100;
            e1.num = 10;
            playerComp.elementData.Add(e1);

            ElementData e2 = new ElementData();
            e2.id  = 101;
            e2.num = 10;
            playerComp.elementData.Add(e2);

            ElementData e3 = new ElementData();
            e3.id  = 102;
            e3.num = 10;
            playerComp.elementData.Add(e3);

            ElementData e4 = new ElementData();
            e4.id  = 103;
            e4.num = 00;
            playerComp.elementData.Add(e4);

            entity.AddComp(playerComp);
        }

        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <TransfromComponent>())
        {
            TransfromComponent c = new TransfromComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = "famale_01";
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));

            entity.AddComp(c);
        }

        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            c.creater = entity.ID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = playerComp.CharacterData.m_hp;
            c.life    = playerComp.CharacterData.m_hp;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <BlowFlyComponent>())
        {
            BlowFlyComponent c = new BlowFlyComponent();
            entity.AddComp(c);
        }
    }
    public void PlayerJoin(EntityBase entity)
    {
        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <ViewComponent>())
        {
            ViewComponent c = new ViewComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = "famale_01";
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <PlayerComponent>())
        {
            PlayerComponent c = new PlayerComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = 100;
            c.life    = 100;
            entity.AddComp(c);
        }

        //预测一个输入
        //TODO 放在框架中
        if (entity.GetExistComp <ConnectionComponent>())
        {
            ConnectionComponent cc = entity.GetComp <ConnectionComponent>();
            cc.m_lastInputCache = new CommandComponent();
        }
    }
    public void PlayerJoin(EntityBase entity)
    {
        ConnectionComponent connectComp = entity.GetComp <ConnectionComponent>();
        PlayerComponent     playerComp  = null;

        if (!entity.GetExistComp <PlayerComponent>())
        {
            playerComp = new PlayerComponent();
            entity.AddComp(playerComp);
        }
        else
        {
            playerComp = entity.GetComp <PlayerComponent>();
        }

        //将角色ID传入游戏
        playerComp.characterID = connectComp.m_session.player.characterID;
        playerComp.nickName    = connectComp.m_session.player.playerID;

        ElementData e1 = new ElementData();

        e1.id  = 100;
        e1.num = 10;
        playerComp.elementData.Add(e1);

        ElementData e2 = new ElementData();

        e2.id  = 101;
        e2.num = 10;
        playerComp.elementData.Add(e2);

        ElementData e3 = new ElementData();

        e3.id  = 102;
        e3.num = 10;
        playerComp.elementData.Add(e3);

        ElementData e4 = new ElementData();

        e4.id  = 103;
        e4.num = 00;
        playerComp.elementData.Add(e4);

        if (!entity.GetExistComp <CommandComponent>())
        {
            CommandComponent c = new CommandComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <TransfromComponent>())
        {
            TransfromComponent c = new TransfromComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <AssetComponent>())
        {
            AssetComponent c = new AssetComponent();
            c.m_assetName = playerComp.CharacterData.m_ModelID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            c.pos.FromVector(new Vector3(15, 0, 0));

            entity.AddComp(c);
        }


        if (!entity.GetExistComp <SkillStatusComponent>())
        {
            SkillStatusComponent c = new SkillStatusComponent();

            DataTable data = DataManager.GetData("SkillData");
            for (int i = 0; i < data.TableIDs.Count; i++)
            {
                c.m_skillList.Add(new SkillData(data.TableIDs[i], i));
            }
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CDComponent>())
        {
            CDComponent c = new CDComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CampComponent>())
        {
            CampComponent c = new CampComponent();
            c.creater = entity.ID;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <MoveComponent>())
        {
            MoveComponent c = new MoveComponent();
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent c = new CollisionComponent();
            c.area.areaType = AreaType.Circle;
            c.area.radius   = 0.5f;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <LifeComponent>())
        {
            LifeComponent c = new LifeComponent();
            c.maxLife = playerComp.CharacterData.m_hp;
            c.life    = playerComp.CharacterData.m_hp;
            entity.AddComp(c);
        }

        if (!entity.GetExistComp <BlowFlyComponent>())
        {
            BlowFlyComponent c = new BlowFlyComponent();
            entity.AddComp(c);
        }

        //预测一个输入
        //TODO 放在框架中
        if (entity.GetExistComp <ConnectionComponent>())
        {
            ConnectionComponent cc = entity.GetComp <ConnectionComponent>();
            cc.m_lastInputCache = new CommandComponent();
            cc.m_defaultInput   = new CommandComponent();
        }

        GameTimeComponent gtc = m_world.GetSingletonComp <GameTimeComponent>();

        gtc.GameTime = 10000 * 1000;
    }
예제 #14
0
 private void ShieldCDFinish(ICD userData)
 {
     this.RemoveComponent(this.m_ShieldCDComponent);
     this.m_ShieldCDComponent = null;
 }
예제 #15
0
 private void CDFinished(ICD propsData)
 {
     this.RemoveComponent(this.m_CDComponent);
     this.m_CDComponent = null;
 }
예제 #16
0
 private void Update()
 {
     if (MouseIn && Input.GetMouseButtonUp(0) && DS.CurrentItemGrid != null)
     {
         if (DS.CurrentItemGrid.GetType() == typeof(QuickSlotItem))
         {
             // 快捷栏内转移物品
             if (DS.CurrentItemGrid != MyItem)
             {
                 Item tempitem  = MyItem;
                 int  tempcount = ItemCount;
                 initItemGird(DS.CurrentItemGrid.MyItem, DS.CurrentItemGrid.ItemCount);
                 DS.CurrentItemGrid.initItemGird(tempitem, tempcount);
             }
             else
             {
             }
             DS.CurrentItemGrid = null;
         }
         else if (DS.CurrentItemGrid.GetType() == typeof(EquipmentGrid))
         {
             // 装备栏->快捷栏
             if (MyItem != null)
             {
                 Bag.addItem(MyItem, ItemCount, true);
             }
             initItemGird(DS.CurrentItemGrid.MyItem, DS.CurrentItemGrid.ItemCount);
             DS.CurrentItemGrid.release();
             Bag.removeItem(Bag.findItemGrid(MyItem), 1, true);
             DS.CurrentItemGrid = null;
             Bag.Owner.ItemList.Add(MyItem);
         }
         else
         {
             // 物品栏->快捷栏
             if (MyItem != null)
             {
                 Bag.addItem(MyItem, ItemCount, true);
             }
             initItemGird(DS.CurrentItemGrid.MyItem, DS.CurrentItemGrid.ItemCount);
             Bag.removeItem(DS.CurrentItemGrid, DS.CurrentItemGrid.ItemCount, true);
             DS.CurrentItemGrid = null;
             Bag.Owner.ItemList.Add(MyItem);
         }
     }
     if (MouseIn && Input.GetMouseButtonDown(1) && MyItem != null)
     {
         MyItem.QSID = "";
         Bag.addItem(MyItem, ItemCount, true);
         MyIcon.sprite = DefaultIcon;
         CountComponent.SetActive(false);
         CDComponent.SetActive(false);
         MyItem = null;
     }
     #region initItemGird
     if (MyItem == null)
     {
         MyIcon.sprite = DefaultIcon;
         CountComponent.SetActive(false);
         CDComponent.SetActive(false);
     }
     else
     {
         MyItem.onHold();
         MyIcon.enabled = true;
         CountComponent.SetActive(true);
         //MyIcon.sprite = MyItemGrid.MyIcon.sprite;
         CountText.text = ItemCount.ToString();
         if (Input.GetKeyDown(HotKey))
         {
             Bag.useItem(this, 1);
         }
         #region CDCheck
         try {
             if (MyItem.CoolDown != 0)
             {
                 if (MyItem.CurrentCoolDown == MyItem.CoolDown)
                 {
                     CDComponent.SetActive(false);
                     CDText.text = "0%";
                 }
                 else
                 {
                     CDComponent.SetActive(true);
                     int percent = int.Parse(string.Format("{0:0}", MyItem.CurrentCoolDown / MyItem.CoolDown * 100f));
                     CDMask.transform.localScale = new Vector2(OriginalSize.x, OriginalSize.y * (1 - percent * 0.01f));
                     if (percent < 80 && percent % 5 == 0)
                     {
                         CDText.text = string.Format("{0:0%}", MyItem.CurrentCoolDown / MyItem.CoolDown);
                     }
                     else if (percent >= 80)
                     {
                         CDText.text = string.Format("{0:0%}", MyItem.CurrentCoolDown / MyItem.CoolDown);
                     }
                 }
             }
             else
             {
                 CDComponent.SetActive(false);
             }
         } catch (Exception e) {
             print(e.StackTrace);
         }
         #endregion
     }
     #endregion
 }