public override void WriteXml(XmlWriter writer) { writer.WriteAttributeString("ActionType", ActionType.ToString()); writer.WriteAttributeString("ItemTarget", ItemTarget.ToString()); writer.WriteAttributeString("ItemQuality", ItemQuality.ToString()); writer.WriteAttributeString("ItemId", ItemId.ToString()); }
/// <summary> /// </summary> /// <param name="t"> /// </param> /// <param name="o"> /// </param> /// <param name="statId"> /// </param> /// <param name="statValue"> /// </param> /// <returns> /// </returns> /// <exception cref="NotImplementedException"> /// </exception> public static Expression <Func <IInstancedEntity, bool> > BuildExpression( ItemTarget t, Operator o, int statId, int statValue) { switch (o) { case Operator.GreaterThan: case Operator.LessThan: case Operator.EqualTo: case Operator.TestNumPets: case Operator.BitAnd: case Operator.NotBitAnd: case Operator.BitOr: case Operator.Unequal: case Operator.Not: Func <int, int, bool> tmp = SwitchStatOperator((int)o).Compile(); Func <IInstancedEntity, IInstancedEntity> tmp2 = GetTarget(t).Compile(); return(k => tmp.Invoke(tmp2.Invoke(k).Stats[statId].Value, statValue)); case Operator.HasNotFormula: return(k => ((Character)GetTarget(t).Compile().Invoke(k)).HasNano(statValue)); case Operator.FlyingAllowed: return(k => true); default: throw new NotImplementedException("Operator " + o.ToString() + " not implemented yet."); } }
/// <summary> /// </summary> /// <param name="t"> /// </param> /// <param name="o"> /// </param> /// <param name="statId"> /// </param> /// <param name="statValue"> /// </param> /// <returns> /// </returns> /// <exception cref="NotImplementedException"> /// </exception> public static Expression<Func<IInstancedEntity, bool>> BuildExpression( ItemTarget t, Operator o, int statId, int statValue) { switch (o) { case Operator.GreaterThan: case Operator.LessThan: case Operator.EqualTo: case Operator.TestNumPets: case Operator.BitAnd: case Operator.NotBitAnd: case Operator.BitOr: case Operator.Unequal: Func<int, int, bool> tmp = SwitchStatOperator((int)o).Compile(); Func<IInstancedEntity, IInstancedEntity> tmp2 = GetTarget(t).Compile(); return k => tmp.Invoke(tmp2.Invoke(k).Stats[statId].Value, statValue); case Operator.HasNotFormula: return k => ((Character)GetTarget(t).Compile().Invoke(k)).HasNano(statValue); default: throw new NotImplementedException("Operator " + o.ToString() + " not implemented yet."); } }
void Start() { retrievedAllItems = false; scriptItemTarget = theLips.GetComponent <ItemTarget>(); trnLips = theLips.transform; scriptInv = GameObject.FindWithTag("InventoryManager").GetComponent <Inventory>(); currentLevel = 1; }
public MenuItem(string caption, ItemTarget itemTarget, ItemType itemType, string cmd, string param, string directory, MenuItem menuUp) { this.caption = caption; this.itemType = itemType; this.itemTarget = itemTarget; this.cmd = cmd; this.param = param; this.directory = directory; this.menuUp = menuUp; }
public void Write(ref PacketWriter data) { data.WriteUInt32((uint)TargetMask); if (Convert.ToBoolean(TargetMask & (SpellCastTargetFlags.Unit | SpellCastTargetFlags.CorpseAlly | SpellCastTargetFlags.Gameobject | SpellCastTargetFlags.CorpseEnemy | SpellCastTargetFlags.UnitMinipet))) { data.WritePackedGuid(ObjectTargetGUID); } if (Convert.ToBoolean(TargetMask & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem))) { if (ItemTarget != null) { data.WriteUInt64(ItemTarget.GetPackGUID()); } else { data.WriteUInt8(0); } } if (Convert.ToBoolean(TargetMask & SpellCastTargetFlags.SourceLocation)) { data.WritePackedGuid(Src.TransportGUID); // relative position guid here - transport for example if (Src.TransportGUID != 0) { data.WriteBytes(Src.TransportOffset.WriteXYZStream()); } else { data.WriteBytes(Src.Position.WriteXYZStream()); } } if (Convert.ToBoolean(TargetMask & SpellCastTargetFlags.DestLocation)) { data.WritePackedGuid(Dst.TransportGUID); // relative position guid here - transport for example if (Dst.TransportGUID != 0) { data.WriteBytes(Dst.TransportOffset.WriteXYZStream()); } else { data.WriteBytes(Dst.Position.WriteXYZStream()); } } if (Convert.ToBoolean(TargetMask & SpellCastTargetFlags.String)) { data.WriteString(strTarget); } }
public void Consume(ItemTarget target, ResourceScriptableObject resource) { if (target == ItemTarget.Adult) { float currentHungerVal = playerHungerCurrent + resource.hungerGainRate * Time.deltaTime; playerHungerCurrent = Mathf.Clamp(currentHungerVal, 0, GameInfo.playerHungerMax); float currentThirstVal = playerThirstCurrent + resource.thirstGainRate * Time.deltaTime; playerThirstCurrent = Mathf.Clamp(currentThirstVal, 0, GameInfo.playerThirstMax); float currentSanityVal = playerSanityCurrent + resource.sanityGainRate * Time.deltaTime; playerSanityCurrent = Mathf.Clamp(currentSanityVal, 0, GameInfo.playerSanityMax); } else { print("Consume resource baby not implemented"); } }
void Update(Unit caster) { ObjectTarget = ObjectTargetGUID != 0 ? ((ObjectTargetGUID == caster.GetGUIDLow()) ? caster : ObjMgr.GetObject <WorldObject>(caster, ObjectTargetGUID)) : null; ItemTarget = null; if (caster is Player) { Player player = caster.ToPlayer(); if (Convert.ToBoolean(TargetMask & SpellCastTargetFlags.Item)) { ItemTarget = player.GetItemByGuid(ItemTargetGUID); } else if (Convert.ToBoolean(TargetMask & SpellCastTargetFlags.TradeItem)) { //if (ItemTargetGUID == (uint)TradeSlots.NONTRADED) // here it is not guid but slot. Also prevents hacking slots //if (TradeData* pTrade = player->GetTradeData()) //ItemTarget = pTrade->GetTraderData()->GetItem(TradeSlots.NONTRADED); } if (ItemTarget != null) { ItemTargetEntry = ItemTarget.GetEntry(); } } // update positions by transport move if (HasSrc() && Src.TransportGUID != 0) { WorldObject transport = ObjMgr.GetObject <WorldObject>(caster, Src.TransportGUID); if (transport != null) { Src.Position.Relocate(transport.Position); Src.Position.RelocateOffset(Src.TransportOffset); } } if (HasDst() && Dst.TransportGUID != 0) { WorldObject transport = ObjMgr.GetObject <WorldObject>(caster, Dst.TransportGUID); if (transport != null) { Dst.Position.Relocate(transport.Position); Dst.Position.RelocateOffset(Dst.TransportOffset); } } }
public void BuildItemFromScriptableObject(ItemScriptableObject scriptableItem) { this.itemName = scriptableItem.itemName; this.myType = scriptableItem.itemType; this.myTarget = scriptableItem.itemTarget; this.readyness = scriptableItem.itemReadyness; this.hungerValue = scriptableItem.hungerValue; this.thirstValue = scriptableItem.thirstValue; this.sanityValue = scriptableItem.sanityValue; this.diaperValue = scriptableItem.diaperValue; this.attentionValue = scriptableItem.attentionValue; this.preparedTime = 0; this.timeUntilPrepared = scriptableItem.timeUntilPrepared; this.timeUntilOverPrepared = scriptableItem.timeUntilOverPrepared; this.underPreparedPenaltyAdder = scriptableItem.underPreparedPenaltyAdder; this.overPreparedPenaltyMultiplier = scriptableItem.overPreparedPenaltyMultiplier; this.myIcon = scriptableItem.myIcon; this.myIcon_Over = scriptableItem.myIcon_Over; this.myIcon_Under = scriptableItem.myIcon_Under; }
public void Consume(ItemTarget target, Item item) { if (item.GetReadyness() == Readyness.Overcooked) { item.hungerValue *= item.overPreparedPenaltyMultiplier; item.thirstValue *= item.overPreparedPenaltyMultiplier; item.sanityValue *= item.overPreparedPenaltyMultiplier; } else if (item.GetReadyness() == Readyness.Undercooked) { item.hungerValue += item.underPreparedPenaltyAdder; item.thirstValue += item.underPreparedPenaltyAdder; item.sanityValue += item.underPreparedPenaltyAdder; } if (target == ItemTarget.Adult) { float currentHungerVal = playerHungerCurrent + item.hungerValue; playerHungerCurrent = Mathf.Clamp(currentHungerVal, 0, GameInfo.playerHungerMax); float currentThirstVal = playerThirstCurrent + item.thirstValue; playerThirstCurrent = Mathf.Clamp(currentThirstVal, 0, GameInfo.playerThirstMax); float currentSanityVal = playerSanityCurrent + item.sanityValue; playerSanityCurrent = Mathf.Clamp(currentSanityVal, 0, GameInfo.playerSanityMax); } else if (target == ItemTarget.Baby) { float currentHungerVal = babyHungerCurrent + item.hungerValue; babyHungerCurrent = Mathf.Clamp(currentHungerVal, 0, GameInfo.babyHungerMax); float currentThirstVal = babyThirstCurrent + item.thirstValue; babyThirstCurrent = Mathf.Clamp(currentThirstVal, 0, GameInfo.babyThirstMax); float currentDiaperVal = babyDiaperCurrent + item.diaperValue; babyDiaperCurrent = Mathf.Clamp(currentDiaperVal, 0, GameInfo.babyDiaperMax); float currentAttentionVal = babyAttentionCurrent + item.attentionValue; babyAttentionCurrent = Mathf.Clamp(currentAttentionVal, 0, GameInfo.babyAttentionMax); } }
void Start() { retrievedAllItems = false; scriptItemTarget = theLips.GetComponent<ItemTarget>(); trnLips = theLips.transform; scriptInv = GameObject.FindWithTag("InventoryManager").GetComponent<Inventory>(); currentLevel = 1; }
public void SetTarget(ItemTarget target) { mTarget = target; }
/// <summary> /// </summary> /// <param name="t"> /// </param> /// <returns> /// </returns> public static Expression<Func<IInstancedEntity, IInstancedEntity>> GetTarget(ItemTarget t) { switch (t) { case ItemTarget.Self: return (k) => k; case ItemTarget.Fightingtarget: return (k) => ((ITargetingEntity)k).Playfield.FindByIdentity(((ITargetingEntity)k).FightingTarget); case ItemTarget.Target: return (k) => ((ITargetingEntity)k).Playfield.FindByIdentity(((ITargetingEntity)k).SelectedTarget); case ItemTarget.User: return (k) => k; case ItemTarget.Wearer: return (k) => k; default: return (k) => k; } }
/// <summary> /// </summary> /// <param name="t"> /// </param> /// <returns> /// </returns> public static Expression <Func <IInstancedEntity, IInstancedEntity> > GetTarget(ItemTarget t) { switch (t) { case ItemTarget.Self: return((k) => k); case ItemTarget.Fightingtarget: return((k) => ((ITargetingEntity)k).Playfield.FindByIdentity(((ITargetingEntity)k).FightingTarget)); case ItemTarget.Target: return((k) => ((ITargetingEntity)k).Playfield.FindByIdentity(((ITargetingEntity)k).SelectedTarget)); case ItemTarget.User: return((k) => k); case ItemTarget.Wearer: return((k) => k); default: return((k) => k); } }