public void SetQuality(RuneQuality quality) { Quality = quality; m_mods = new List <HitData.DamageModPair>(); switch (quality) { case RuneQuality.Common: m_tooltip = "Pass through non-terrain objects\n+20% movement speed"; break; case RuneQuality.Ancient: m_tooltip = "Pass through non-terrain objects\n+20% movement speed\nDeal 12 additional spirit damage on every attack"; break; case RuneQuality.Dark: m_tooltip = "Pass through non-terrain objects\n+30% movement speed\nDeal 5 additional poison damage on every attack"; m_mods = new List <HitData.DamageModPair> { new HitData.DamageModPair { m_type = HitData.DamageType.Blunt, m_modifier = HitData.DamageModifier.Resistant }, new HitData.DamageModPair { m_type = HitData.DamageType.Pierce, m_modifier = HitData.DamageModifier.Resistant }, new HitData.DamageModPair { m_type = HitData.DamageType.Slash, m_modifier = HitData.DamageModifier.Resistant } }; break; } }
public virtual int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue ) { if ( makersMark ) Crafter = from; m_Quality = (RuneQuality)quality; return quality; }
public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue) { if (makersMark) { Crafter = from; } m_Quality = (RuneQuality)quality; return(quality); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_Crafter = reader.ReadMobile(); m_Quality = (RuneQuality)reader.ReadEncodedInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 0: { m_Crafter = reader.ReadMobile(); m_Quality = (RuneQuality)reader.ReadEncodedInt(); break; } } }
public void SetQuality(RuneQuality quality) { var lightEffect = ConstructGameObject(quality); m_startEffects.m_effectPrefabs = new EffectList.EffectData[] { new EffectList.EffectData { m_prefab = lightEffect, m_enabled = true, m_attach = true } }; TriggerStartEffects(); if (quality == RuneQuality.Dark) { var startInstance = m_startEffectInstances[0]; fireAura = startInstance.AddComponent <FireAura>(); fireAura.m_ttl = m_ttl - m_time; fireAura.m_hitOwner = false; fireAura.Setup(m_character, Vector3.zero, 0, null, null); } }
public Rune(long rune_id, long wizard_id, RuneLocation occupied_type, long occupied_id, byte slot_no, RuneColour rank, byte @class, RuneSet set_id, byte upgrade_limit, byte upgrade_curr, int sell_value, List <short> pri_eff, List <short> prefix_eff, List <List <short> > sec_eff, RuneQuality extra) { Id = rune_id; SummonerId = wizard_id; Location = occupied_type; MonsterId = occupied_id; Slot = slot_no; Colour = rank; Stars = @class; Set = set_id; MaxLevel = upgrade_limit; Level = upgrade_curr; SellValue = sell_value; PrimaryStat = new RuneStat(pri_eff); PrefixStat = new RuneStat(prefix_eff); Substats = sec_eff.Select(stat => new RuneStat(stat)).ToList(); Quality = extra; }
public static GameObject ConstructGameObject(RuneQuality quality = RuneQuality.Common) { GameObject torchPrefab = ZNetScene.instance.GetPrefab("Torch"); GameObject effectPrefab = torchPrefab.transform.Find("attach/equiped/flame")?.gameObject; GameObject modifiedEffectPrefab = GameObject.Instantiate(effectPrefab); GameObject result = new GameObject(); result.AddComponent <ZNetView>(); LightHover hoverEffect = result.AddComponent <LightHover>(); if (quality == RuneQuality.Dark) { hoverEffect.loopTime = 5f; hoverEffect.heightLoopTimeRatio = 0.9f; } modifiedEffectPrefab.SetActive(true); var light = modifiedEffectPrefab.AddComponent <Light>(); light.enabled = true; light.color = new Color(1, 0.6f, 0.5f); light.range = (quality == RuneQuality.Ancient ? 20 : 10); light.intensity = (quality == RuneQuality.Common ? 1.5f : 2); GameObject.DestroyImmediate(modifiedEffectPrefab.transform.Find("smoke (1)").gameObject); var numLights = 3f; var radius = (quality == RuneQuality.Ancient ? 3f : 1.5f); for (int i = 0; i < numLights; i++) { var angle = (i / numLights) * 2 * Math.PI; var go = GameObject.Instantiate(modifiedEffectPrefab); go.transform.SetParent(result.transform); go.transform.localPosition = new Vector3((float)(radius * Math.Cos(angle)), 0, (float)(radius * Math.Sin(angle))); } GameObject.Destroy(modifiedEffectPrefab); return(result); }
public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue) { Double bonus = (Double)quality * 5; Double imbuing = from.Skills.Imbuing.Value / 4 + bonus; Double amount = imbuing / 100.0 * (Double)this.MaxAmount; this.BaseAmount = (int)amount; if (this.BaseAmount == 0) { this.BaseAmount = 1; } if (makersMark) { Crafter = from; } m_Quality = (RuneQuality)quality; return(quality); }
public virtual int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue ) { Double bonus = (Double)quality * 5; Double imbuing = from.Skills.Imbuing.Value / 4 + bonus; Double amount = imbuing / 100.0 * (Double)this.MaxAmount; this.BaseAmount = (int)amount; if ( this.BaseAmount == 0 ) this.BaseAmount = 1; if ( makersMark ) Crafter = from; m_Quality = (RuneQuality)quality; return quality; }