Example #1
0
    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 };
    }
Example #2
0
 public static float GetShieldDamageMultiplier(ShieldTech shieldTech, DamageType damageType)
 {
     return(GameManager.Inst.Constants.ShieldDamageMultiplier[shieldTech][damageType]);
 }