Пример #1
0
            //only Melee or range
            public static bool HasCanAttackEquip(this PeEntity entity, EeqSelect sle)
            {
                NpcPackageCmpt pkg = entity.packageCmpt as NpcPackageCmpt;

                if (null == pkg)
                {
                    return(false);
                }

                List <ItemObject> objs = pkg.GetEquipItemObjs(sle);

                if (objs == null)
                {
                    return(false);
                }

                for (int i = 0; i < objs.Count; i++)
                {
                    if (SelectItem.EquipCanAttack(entity, objs[i]))
                    {
                        return(true);
                    }
                }
                return(false);
            }
Пример #2
0
        public List <ItemObject> GetEquipItemObjs(EeqSelect selet)
        {
            List <ItemObject> eqs = new List <ItemObject>();

            eqs.AddRange(mSlotList.mEquipItem.GetEquipItemObjs(selet));
            eqs.AddRange(mHandinList.mEquipItem.GetEquipItemObjs(selet));
            return(eqs);
        }
Пример #3
0
 public bool SetSelectObjsTool(PeEntity npc, EeqSelect selcet)
 {
     SetSelectObjsTool(npc, npc.GetEquipObjs(selcet));
     if (npc.motionEquipment.axe != null && npc.motionEquipment.axe.m_ItemObj != null)
     {
         AddSelectToolObj(npc.motionEquipment.axe.m_ItemObj);
     }
     return(_hasSelectsToolEq.Count > 0);
 }
Пример #4
0
        public List <ItemObject> GetEquipItemObjs(EeqSelect selet)
        {
            if (mItemsDic == null)
            {
                return(null);
            }

            return(mItemsDic[(int)selet]);
        }
Пример #5
0
        public bool SetSelectObjsEnergy(PeEntity npc, EeqSelect selcet)
        {
            if (npc.GetAttribute(AttribType.Energy) > PETools.PEMath.Epsilon)
            {
                return(false);
            }

            SetSelectObjsEnergy(npc.GetEquipObjs(selcet));
            return(_hasSelectsEnergyEq.Count > 0);
        }
Пример #6
0
            public static bool HasEquip(this PeEntity entity, EeqSelect sle)
            {
                NpcPackageCmpt pkg = entity.packageCmpt as NpcPackageCmpt;

                if (null == pkg)
                {
                    return(false);
                }

                return(pkg.HasEq(sle));
            }
Пример #7
0
        public bool SetSelectObjsDef(PeEntity npc, EeqSelect selcet)
        {
            //ItemObject curobj;
            SetSelectObjsDef(npc.GetEquipObjs(selcet));
            if (npc.motionEquipment.sheild != null && npc.motionEquipment.sheild.m_ItemObj != null)
            {
                AddSeclectObjDef(npc.motionEquipment.sheild.m_ItemObj);
            }

            return(_hasSelectsDefEq.Count > 0);
        }
Пример #8
0
        public bool SetSelectObjsEnergySheild(PeEntity npc, EeqSelect selcet)
        {
            if (npc.motionEquipment == null || npc.motionEquipment.energySheild != null)
            {
                return(false);
            }

            setSelectObjEnergySheild(npc, npc.GetEquipObjs(selcet));
//			if( && npc.motionEquipment.energySheild.itemObject != null)
//				AddEnergySheildObj(npc.motionEquipment.energySheild.itemObject);

            return(_hasSelectsEnergy_SheildEq.Count > 0);
        }
Пример #9
0
        public ItemObject GetBetterObj(PeEntity npc, Enemy enmey, EeqSelect select)
        {
            switch (select)
            {
            case EeqSelect.combat:
                return(GetBetterAtkObj(npc, enmey));

            case EeqSelect.protect:
                return(GetBetterDefObj());

            case EeqSelect.tool:
                return(GetBetterToolObj());

            default:
                return(null);
            }
        }
Пример #10
0
        public static bool HasCanEquip(PeEntity entity, EeqSelect selcet, AttackType type)
        {
            switch (selcet)
            {
            case EeqSelect.combat:       return(HasCanAttackEquip(entity, type));

            case EeqSelect.protect:      return(HasCanUseEquip(entity, selcet));

            case EeqSelect.energy:       return(HasCanUseEquip(entity, selcet));

            case EeqSelect.energy_sheild: return(HasCanUseEquip(entity, selcet));

            case EeqSelect.tool:         return(HasCanUseEquip(entity, selcet));

            default: return(false);
            }
        }
Пример #11
0
        public bool SetSelect(PeEntity npc, EeqSelect select)
        {
            switch (select)
            {
//			case AttackSelect.Melee:
//				return SetSelectObjsAtk(npc,select);
            case EeqSelect.combat:
                return(SetSelectObjsAtk(npc, select));

            case EeqSelect.protect:
                return(SetSelectObjsDef(npc, select));

            case EeqSelect.tool:
                return(SetSelectObjsTool(npc, select));

            default:
                return(false);
            }
        }
Пример #12
0
        public static bool HasCanAttackEquip(PeEntity entity, AttackType type)
        {
            List <ItemObject> objs = entity.GetEquipObjs(EeqSelect.combat);

            if (objs == null)
            {
                return(false);              //is player
            }
            for (int i = 0; i < objs.Count; i++)
            {
                if (SelectItem.EquipCanAttack(entity, objs[i]))
                {
                    AttackMode mode = objs[i].protoData.weaponInfo.attackModes[0];
                    if (mode.type == type)
                    {
                        return(true);
                    }
                }
            }

            ItemObject curobj = entity.motionEquipment.PEHoldAbleEqObj;
            EeqSelect  curEq  = SelectItem.GetEquipSelect(curobj);

            bool IsNeedTakeOff = (curobj != null && curobj.protoData.weaponInfo != null && curobj.protoData.weaponInfo.attackModes[0].type == AttackType.Ranged) ? true : false;
            bool canAttack     = SelectItem.EquipCanAttack(entity, curobj);

            if (IsNeedTakeOff && !canAttack)
            {
                TakeOffEquip(entity);
            }

            if (curEq == EeqSelect.combat && canAttack)
            {
                AttackMode mode = curobj.protoData.weaponInfo.attackModes[0];
                if (mode.type == type)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #13
0
        public bool SetSelectObjsAtk(PeEntity npc, AttackType type)
        {
            AddSelectObjsAtk(npc, FilterAtkObjs(type, npc.GetEquipObjs(EeqSelect.combat)));

            ItemObject curobj = npc.motionEquipment.PEHoldAbleEqObj;
            EeqSelect  curEq  = SelectItem.GetEquipSelect(curobj);

            bool IsNeedTakeOff = (curobj != null && curobj.protoData.weaponInfo != null && curobj.protoData.weaponInfo.attackModes[0].type == AttackType.Ranged) ? true : false;
            bool canAttack     = SelectItem.EquipCanAttack(npc, curobj);

            if (IsNeedTakeOff && !canAttack)
            {
                SelectItem.TakeOffEquip(npc);
            }

            if (curEq == EeqSelect.combat && curobj.protoData.weaponInfo.attackModes[0].type == type && canAttack)
            {
                AddSeclectObjAtk(curobj);
            }

            return(_hasSelectsAtkEq.Count > 0);
        }
Пример #14
0
        public static bool HasCanUseEquip(PeEntity entity, EeqSelect selcet)
        {
            List <ItemObject> objs = entity.GetEquipObjs(selcet);

            return(objs != null && objs.Count > 0 ? true : false);
        }
Пример #15
0
        //public List<ItemObject> GetAttackEquipItemObjs()
        //{
        //    List<ItemObject> eqs = new List<ItemObject>();
        //    eqs.AddRange(mSlotList.mEquipItem.GetAttackEquipObjs());
        //    eqs.AddRange(mHandinList.mEquipItem.GetAttackEquipObjs());
        //    return eqs;
        //}

        public bool HasEq(EeqSelect Select)
        {
            return(GetEquipItemObjs(Select).Count > 0);
        }
Пример #16
0
            public static List <ItemAsset.ItemObject> GetEquipObjs(this PeEntity entity, EeqSelect selcet)
            {
                NpcPackageCmpt pkg = entity.packageCmpt as NpcPackageCmpt;

                if (null == pkg)
                {
                    return(null);
                }

                return(pkg.GetEquipItemObjs(selcet));
            }
Пример #17
0
 public void SetEquipInfo(EequipEditorType equipType, EeqSelect select)
 {
     _equipType  = equipType;
     _selectType = select;
 }