public virtual void Initialize(InvItemData shieldItem) { if (shieldItem == null) { //no shield installed TotalCapacity = 0; } else { Type = (ShieldType)Enum.Parse(typeof(ShieldType), shieldItem.Item.GetStringAttribute("Shield Type")); Tech = (ShieldTech)Enum.Parse(typeof(ShieldTech), shieldItem.Item.GetStringAttribute("Shield Technology")); Class = (ShieldClass)Enum.Parse(typeof(ShieldClass), shieldItem.Item.GetStringAttribute("Shield Class")); TotalCapacity = shieldItem.Item.GetFloatAttribute("Capacity"); RechargeRate = shieldItem.Item.GetFloatAttribute("Recharge Rate"); RechargeDelay = shieldItem.Item.GetFloatAttribute("Recharge Delay"); this.PowerRequired = shieldItem.Item.GetFloatAttribute("Power Required"); } MyRenderer = this.GetComponent <MeshRenderer>(); Material mat = null; //if playership then load separate materials //if NPC then use preloaded materials in material manager //this way playership material can be faded without affecting NPC's material if (ParentShip == GameManager.Inst.PlayerControl.PlayerShip) { if (Tech == ShieldTech.Gravity) { mat = GameObject.Instantiate(Resources.Load("ShieldEffect1")) as Material; } else if (Tech == ShieldTech.Plasma) { mat = GameObject.Instantiate(Resources.Load("ShieldEffect2")) as Material; } else { mat = GameObject.Instantiate(Resources.Load("ShieldEffect3")) as Material; } mat.SetFloat("_Brightness", 0); } else { if (Tech == ShieldTech.Gravity) { mat = GameManager.Inst.MaterialManager.ShieldMaterial1; } else if (Tech == ShieldTech.Plasma) { mat = GameManager.Inst.MaterialManager.ShieldMaterial2; } else { mat = GameManager.Inst.MaterialManager.ShieldMaterial3; } } MyRenderer.materials = new Material[] { mat, mat, mat }; }
public static float GetShieldDamageMultiplier(ShieldTech shieldTech, DamageType damageType) { return(GameManager.Inst.Constants.ShieldDamageMultiplier[shieldTech][damageType]); }