//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); }
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); }
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); }
public List <ItemObject> GetEquipItemObjs(EeqSelect selet) { if (mItemsDic == null) { return(null); } return(mItemsDic[(int)selet]); }
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); }
public static bool HasEquip(this PeEntity entity, EeqSelect sle) { NpcPackageCmpt pkg = entity.packageCmpt as NpcPackageCmpt; if (null == pkg) { return(false); } return(pkg.HasEq(sle)); }
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); }
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); }
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); } }
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); } }
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); } }
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); }
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); }
public static bool HasCanUseEquip(PeEntity entity, EeqSelect selcet) { List <ItemObject> objs = entity.GetEquipObjs(selcet); return(objs != null && objs.Count > 0 ? true : false); }
//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); }
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)); }
public void SetEquipInfo(EequipEditorType equipType, EeqSelect select) { _equipType = equipType; _selectType = select; }