private int GetMaxCharges(TalismanType t) { switch (TalismanType) { case TalismanType.firewave: return 2; case TalismanType.massPush: return 1; case TalismanType.massFreez: return 2; case TalismanType.heal: return 1; case TalismanType.doubleDamage: return 1; case TalismanType.megaArmor: return 1; case TalismanType.chain: return 2; case TalismanType.trapDamage: return 3; case TalismanType.trapAOE: return 3; case TalismanType.trapFreez: return 3; case TalismanType.bloodDamage: return 2; case TalismanType.energyVamp: return 1; case TalismanType.splitter: return 2; } return 1; }
public TalismanItem(float power1, float costShoot1, global::TalismanType type) { this.power = power1; this.costShoot = costShoot1; this.TalismanType = type; Slot = Slot.Talisman; }
public TalismanItem(int totalPoints, TalismanType type) { this.power = totalPoints; this.TalismanType = type; costShoot = power*1.3f; Slot = Slot.Talisman; // Debug.Log("cost " + costShoot); }
public TalismanItem(int points, TalismanType type) { Slot = Slot.Talisman; this.TalismanType = type; this.points = points; costShoot = GreatRandom.RandomizeValue(GetBaseCost(type)*Formuls.BASE_MOSTER_ENERGY)/2; IconSprite = DataBaseController.Instance.TalismanIcon(type); MaxCharges = GetMaxCharges(type); cost = Formuls.CostTalismanBypoints(points); }
public TalismanItem(float power1, float costShoot1, TalismanType type,int enchant) { cost = Formuls.CostTalismanBypoints((int)power1); this.points = power1; this.costShoot = costShoot1; this.enchant = enchant; this.TalismanType = type; IconSprite = DataBaseController.Instance.TalismanIcon(type); Slot = Slot.Talisman; MaxCharges = GetMaxCharges(type); }
public static string TalismanName(TalismanType type) { string name = "no name"; switch (type) { case TalismanType.firewave: name = "Firewave"; break; case TalismanType.massPush: name = "Round punch"; break; case TalismanType.massFreez: name = "Freez field"; break; case TalismanType.heal: name = "Heal"; break; case TalismanType.doubleDamage: name = "Overcharge"; break; case TalismanType.megaArmor: name = "Ice armor"; break; case TalismanType.chain: name = "Chain strike"; break; case TalismanType.trapDamage: name = "Shooting ward"; break; case TalismanType.trapAOE: name = "Explosive ward"; break; case TalismanType.trapFreez: name = "Freezing ward"; break; case TalismanType.bloodDamage: name = "Rapture strike"; break; case TalismanType.energyVamp: name = "Soul take"; break; case TalismanType.splitter: name = "Equalizer"; break; } return name; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 4: { m_MaxHitPoints = reader.ReadEncodedInt(); m_HitPoints = reader.ReadEncodedInt(); goto case 3; } case 3: { m_Slayer = (SlayerName) reader.ReadInt(); m_Slayer2 = (SlayerName) reader.ReadInt(); goto case 2; } case 2: { m_Ownable = (bool) reader.ReadBool(); m_Owner = (Mobile) reader.ReadMobile(); m_CraftBonusRegular = (CraftList) reader.ReadInt(); m_CraftBonusRegularValue = reader.ReadInt(); m_CraftBonusExcep = (CraftList) reader.ReadInt(); m_CraftBonusExcepValue = reader.ReadInt(); m_ProtectionEntry = (NPC_Name) reader.ReadInt(); m_ProtectionValue = reader.ReadInt(); m_KillersEntry = (NPC_Name) reader.ReadInt(); m_KillersValue = reader.ReadInt(); m_TalisSlayer = (TalisSlayerName) reader.ReadInt(); m_TalismanType = (TalismanType) reader.ReadInt(); m_Charges = reader.ReadInt(); goto case 1; } case 1: { m_MagicalAttributes = new MagicalAttributes( this, reader ); m_AosResistances = new ElementAttributes( this, reader ); m_SkillBonuses = new SkillBonuses( this, reader ); if ( Parent is Mobile ) { //-------- Charged Time Left ----------- m_isequiped = true; InvalidateProperties(); //------ FIN Charged Time Left --------- m_SkillBonuses.AddTo( (Mobile) Parent ); } int strBonus = m_MagicalAttributes.BonusStr; int dexBonus = m_MagicalAttributes.BonusDex; int intBonus = m_MagicalAttributes.BonusInt; if ( Parent is Mobile && ( strBonus != 0 || dexBonus != 0 || intBonus != 0 ) ) { Mobile m = (Mobile) Parent; string modName = Serial.ToString(); if ( strBonus != 0 ) m.AddStatMod( new StatMod( StatType.Str, modName + "Str", strBonus, TimeSpan.Zero ) ); if ( dexBonus != 0 ) m.AddStatMod( new StatMod( StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero ) ); if ( intBonus != 0 ) m.AddStatMod( new StatMod( StatType.Int, modName + "Int", intBonus, TimeSpan.Zero ) ); } if ( Parent is Mobile ) ( (Mobile) Parent ).CheckStatTimers(); break; } case 0: { if ( Parent is Mobile ) { //-------- Charged Time Left ----------- m_isequiped = true; InvalidateProperties(); //------ FIN Charged Time Left --------- m_SkillBonuses.AddTo( (Mobile) Parent ); } m_MagicalAttributes = new MagicalAttributes( this ); m_AosResistances = new ElementAttributes( this ); m_SkillBonuses = new SkillBonuses( this ); break; } } if ( version < 2 ) { m_Ownable = (bool) reader.ReadBool(); m_Owner = (Mobile) reader.ReadMobile(); m_CraftBonusRegular = (CraftList) reader.ReadInt(); m_CraftBonusRegularValue = reader.ReadInt(); m_CraftBonusExcep = (CraftList) reader.ReadInt(); m_CraftBonusExcepValue = reader.ReadInt(); m_ProtectionEntry = (NPC_Name) reader.ReadInt(); m_ProtectionValue = reader.ReadInt(); m_KillersEntry = (NPC_Name) reader.ReadInt(); m_KillersValue = reader.ReadInt(); m_TalisSlayer = (TalisSlayerName) reader.ReadInt(); m_TalismanType = (TalismanType) reader.ReadInt(); m_Charges = reader.ReadInt(); } }
public override void OnDoubleClick(Mobile m) { if (m_TalismanType == TalismanType.None) { return; } if (this.Parent != m) { m.SendLocalizedMessage(502641); // You must equip this item to use it. } else if (m_ChargeTimeLeft > 0) { int tmptime = (m_ChargeTimeLeft2 - (DateTime.Now.Second - m_ChargeTimeLeft3.Second) + 1); if (tmptime > (m_ChargeTimeLeft2 + 1)) { tmptime -= 60; } if (tmptime > m_ChargeTimeLeft2) { tmptime = m_ChargeTimeLeft2; } m.SendLocalizedMessage(1074882, tmptime.ToString()); // You must wait ~1_val~ seconds for this to recharge. } else if (m_Charges == 0) { m.SendLocalizedMessage(501250); // This magic item is out of charges. } else { if ((int)m_TalismanType <= 4) { //Removal m.Target = new InternalTarget(this); } //Mana Phase else if (m_TalismanType == TalismanType.ManaPhase) { ManaPhase.OnUse(m, this); } else if ((int)m_TalismanType >= 9) { //Summon creature BaseCreature bc = (BaseCreature)Activator.CreateInstance(SummonEntry.GetNPC(m_TalismanType)); if (BaseCreature.Summon(bc, m, m.Location, -1, TimeSpan.FromMinutes(10.0))) { bc.FixedParticles(0x3728, 1, 10, 9910, EffectLayer.Head); bc.PlaySound(bc.GetIdleSound()); m_SummonedCreature = bc; m_Charges--; InvalidateProperties(); ChargeTimeLeft = 1800; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } else if (m_TalismanType == TalismanType.SummonRandom) { //Summon Random TalismanType tmpbc = SummonEntry.GetRandom(); BaseCreature bc = (BaseCreature)Activator.CreateInstance(SummonEntry.GetNPC(tmpbc)); if (BaseCreature.Summon(bc, m, m.Location, -1, TimeSpan.FromMinutes(10.0))) { bc.FixedParticles(0x3728, 1, 10, 9910, EffectLayer.Head); bc.PlaySound(bc.GetIdleSound()); m_SummonedCreature = bc; m_Charges--; InvalidateProperties(); ChargeTimeLeft = 1800; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } else { Item summonitem; int message; // Summon item if (m_TalismanType == TalismanType.SummonBandage) { summonitem = new Bandage(10); summonitem.ItemID = 0x0EE9; summonitem.Hue = 0xA3; message = 1075002; // You have been given some clean bandages. } else if (m_TalismanType == TalismanType.SummonBoard) { summonitem = new Board(10); summonitem.Hue = 0xA3; message = 1075000; // You have been given some wooden boards. } else // if ( m_TalismanType == TalismanType.SummonIngot ) { summonitem = new IronIngot(10); summonitem.Hue = 0xA3; message = 1075001; // You have been given some ingots. } m.AddToBackpack(summonitem); m.SendLocalizedMessage(message); m_Charges--; InvalidateProperties(); ChargeTimeLeft = 60; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 4: { m_MaxHitPoints = reader.ReadEncodedInt(); m_HitPoints = reader.ReadEncodedInt(); goto case 3; } case 3: { m_Slayer = (SlayerName)reader.ReadInt(); m_Slayer2 = (SlayerName)reader.ReadInt(); goto case 2; } case 2: { m_Ownable = (bool)reader.ReadBool(); m_Owner = (Mobile)reader.ReadMobile(); m_CraftBonusRegular = (CraftList)reader.ReadInt(); m_CraftBonusRegularValue = reader.ReadInt(); m_CraftBonusExcep = (CraftList)reader.ReadInt(); m_CraftBonusExcepValue = reader.ReadInt(); m_ProtectionEntry = (NPC_Name)reader.ReadInt(); m_ProtectionValue = reader.ReadInt(); m_KillersEntry = (NPC_Name)reader.ReadInt(); m_KillersValue = reader.ReadInt(); m_TalisSlayer = (TalisSlayerName)reader.ReadInt(); m_TalismanType = (TalismanType)reader.ReadInt(); m_Charges = reader.ReadInt(); goto case 1; } case 1: { m_MagicalAttributes = new MagicalAttributes(this, reader); m_AosResistances = new ElementAttributes(this, reader); m_SkillBonuses = new SkillBonuses(this, reader); if (Parent is Mobile) { //-------- Charged Time Left ----------- m_isequiped = true; InvalidateProperties(); //------ FIN Charged Time Left --------- m_SkillBonuses.AddTo((Mobile)Parent); } int strBonus = m_MagicalAttributes.BonusStr; int dexBonus = m_MagicalAttributes.BonusDex; int intBonus = m_MagicalAttributes.BonusInt; if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } break; } case 0: { if (Parent is Mobile) { //-------- Charged Time Left ----------- m_isequiped = true; InvalidateProperties(); //------ FIN Charged Time Left --------- m_SkillBonuses.AddTo((Mobile)Parent); } m_MagicalAttributes = new MagicalAttributes(this); m_AosResistances = new ElementAttributes(this); m_SkillBonuses = new SkillBonuses(this); break; } } if (version < 2) { m_Ownable = (bool)reader.ReadBool(); m_Owner = (Mobile)reader.ReadMobile(); m_CraftBonusRegular = (CraftList)reader.ReadInt(); m_CraftBonusRegularValue = reader.ReadInt(); m_CraftBonusExcep = (CraftList)reader.ReadInt(); m_CraftBonusExcepValue = reader.ReadInt(); m_ProtectionEntry = (NPC_Name)reader.ReadInt(); m_ProtectionValue = reader.ReadInt(); m_KillersEntry = (NPC_Name)reader.ReadInt(); m_KillersValue = reader.ReadInt(); m_TalisSlayer = (TalisSlayerName)reader.ReadInt(); m_TalismanType = (TalismanType)reader.ReadInt(); m_Charges = reader.ReadInt(); } }
public static Type GetNPC(TalismanType name) { return(m_Table[((int)name - 9)].m_NPC); }
public SummonEntry(TalismanType name, Type npc) { m_Name = name; m_NPC = npc; }
private int GetBaseCost(TalismanType t) { switch (TalismanType) { case TalismanType.firewave: return 6; case TalismanType.massPush: return 6; case TalismanType.massFreez: return 6; case TalismanType.heal: return 5; case TalismanType.doubleDamage: return 4; case TalismanType.megaArmor: return 4; case TalismanType.chain: return 6; case TalismanType.trapDamage: return 5; case TalismanType.trapAOE: return 7; case TalismanType.trapFreez: return 7; case TalismanType.bloodDamage: return 4; case TalismanType.energyVamp: return 5; case TalismanType.splitter: return 5; } return 1; }
public SummonEntry( TalismanType name, Type npc ) { m_Name = name; m_NPC = npc; }
public static Type GetNPC( TalismanType name ) { return m_Table[( (int) name - 9 )].m_NPC; }