示例#1
0
    public override string GetStatString(PartSchematic diffSchem)
    {
        bool showDiff = diffSchem != null;

        string retStr = string.Empty;

        if (showDiff)
        {
            WeaponPartSchematic diffWeapon = (WeaponPartSchematic)diffSchem;

            string damageStr       = string.Format("Damage:\n{0} => {2}{1}</color>", diffWeapon.Damage, Damage, getColorBasedChangeInVal(diffWeapon.Damage, Damage));
            string rangeStr        = string.Format("Range:\n{0} => {2}{1}</color>", diffWeapon.Range, Range, getColorBasedChangeInVal(diffWeapon.Range, Range));
            string reloadTimeStr   = string.Format("Reload Time:\n{0} => {2}{1}</color>", diffWeapon.ReloadTimeInSec, ReloadTimeInSec, getColorBasedChangeInVal(diffWeapon.ReloadTimeInSec, ReloadTimeInSec, false));
            string fireStrengthStr = string.Format("Fire Strength:\n{0} => {2}{1}</color>", diffWeapon.ShootImpulse, ShootImpulse, getColorBasedChangeInVal(diffWeapon.ShootImpulse, ShootImpulse));
            string tierStr         = string.Format("Tier:\n{0} => {1}", diffWeapon.Tier, Tier);

            retStr = string.Format("Bullet Type:\n{0} => {1}\n{2}\n{3}\n{4}\n{5}\n{6}",
                                   diffWeapon.BulletType, BulletType, damageStr, rangeStr, reloadTimeStr, fireStrengthStr, tierStr);
        }
        else
        {
            retStr = string.Format("Bullet Type:\n{0}\nDamage:\n{1}\nRange:\n{2}\nReload Time:\n{3}\nFire Strength:\n{4}\nTier:\n{5}",
                                   BulletType, Damage, Range, ReloadTimeInSec, ShootImpulse, Tier);
        }

        return(retStr);
    }
示例#2
0
    public override string GetStatString(PartSchematic diffSchem)
    {
        bool showDiff = diffSchem != null;

        string retStr = string.Empty;

        if (showDiff)
        {
            HullPartSchematic diffHull = (HullPartSchematic)diffSchem;

            string diffWeightRestrictStr = "(" + String.Join(", ", new List <WeaponTier>(diffHull.WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")";
            string weightRestrictStr     = "(" + String.Join(", ", new List <WeaponTier>(WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")";

            string armorStr       = string.Format("Armour:\n{0} => {2}{1}</color>", diffHull.Armour, Armour, getColorBasedChangeInVal(diffHull.Armour, Armour));
            string energyPowerStr = string.Format("Move Force:\n{0} => {2}{1}</color>", diffHull.EnginePower, EnginePower, getColorBasedChangeInVal(diffHull.EnginePower, EnginePower));
            string weightStr      = string.Format("Weight:\n{0} => {2}{1}</color>", diffHull.Weight, Weight, getColorBasedChangeInVal(diffHull.Weight, Weight, false));
            string angularDragStr = string.Format("Angular Drag:\n{0} => {2}{1}</color>", diffHull.AngularDrag, AngularDrag, getColorBasedChangeInVal(diffHull.AngularDrag, AngularDrag, false));

            retStr = string.Format("{0}\n{1}\n{2}\n{3}\nWeapon Weight Restrictions:\n{4} => {5}",
                                   armorStr, energyPowerStr, weightStr, angularDragStr, diffWeightRestrictStr, weightRestrictStr);
        }
        else
        {
            string weightRestrictStr = "(" + String.Join(", ", new List <WeaponTier>(WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")";
            retStr = string.Format("Armour:\n{0}\nEnergy Power:\n{1}\n Weight:\n{2}\nAngular Drag:\n{3}\nWeapon Weight Restrictions:\n{4}",
                                   Armour, EnginePower, Weight, AngularDrag, weightRestrictStr);
        }

        return(retStr);
    }
示例#3
0
 public void UpdatePartText(PartSchematic selectedPart, PartSchematic equippedPart)
 {
     if (selectedPart != null)
     {
         text.text = selectedPart.GetStatString(equippedPart);
     }
     else
     {
         text.text = "";
     }
 }
示例#4
0
    public PartSchematic GetPartFromName(PartSchematic.PartType pType, string name)
    {
        PartSchematic part = null;

        Dictionary <string, PartSchematic> partSchematics = partSchematicDics[pType];

        if (partSchematics.ContainsKey(name))
        {
            part = partSchematics[name];
        }

        return(part);
    }
示例#5
0
    public void UpdateEquippedParts(PartSchematic newPart)
    {
        PartSlot      curPickedSlot = PickedPartsItem.Slot;
        PartSchematic oldPart       = curPickedSlot.Part;

        curPickedSlot.UpdatePart(newPart);

        if (newPart != null && newPart.PType == PartSchematic.PartType.Hull)
        {
            HullPartSchematic oldHull = (HullPartSchematic)oldPart;
            HullPartSchematic newHull = (HullPartSchematic)newPart;

            if (oldHull.OrigWeaponDirs.Length != newHull.OrigWeaponDirs.Length)
            {
                int lengthDiff = newHull.OrigWeaponDirs.Length - oldHull.OrigWeaponDirs.Length;

                if (lengthDiff > 0)
                {
                    for (int i = 0; i < lengthDiff; ++i)
                    {
                        EquippedParts.Add(new PartSlot(null, PartSchematic.PartType.Weapon, EquippedParts.Count));
                    }
                }
                else if (lengthDiff < 0)
                {
                    for (int i = 0; i < Math.Abs(lengthDiff); ++i)
                    {
                        EquippedParts.RemoveAt(EquippedParts.Count - 1);
                    }
                }
            }

            int count = 0;
            foreach (PartSlot slot in EquippedParts)
            {
                if (slot.PartType == PartSchematic.PartType.Weapon)
                {
                    PartSchematic.WeaponTier tier = newHull.WeaponTierRestrictions[count];
                    if (slot.Part != null && ((WeaponPartSchematic)slot.Part).Tier > tier)
                    {
                        slot.UpdatePart(null);
                    }

                    count += 1;
                }
            }
        }

        updateTankDisplayToCurrent();
    }
示例#6
0
    private void generateOtherItems()
    {
        List <PartSchematic> allParts = new List <PartSchematic>(PartsManager.Instance.GetPartsOfType(handler.PickedPartsItem.Slot.PartType));

        List <PartSchematic> parts = new List <PartSchematic>();

        if (handler.PickedPartsItem.Slot.PartType == PartSchematic.PartType.Weapon)
        {
            parts.Add(null);

            HullPartSchematic        curHull = (HullPartSchematic)handler.EquippedParts[0].Part;
            PartSchematic.WeaponTier tier    = curHull.WeaponTierRestrictions[handler.PickedPartsItem.Slot.Idx - 1];
            allParts = allParts.FindAll(w => ((WeaponPartSchematic)w).Tier <= tier);
        }

        parts.AddRange(allParts);

        float itemAnchorStep = 1f / 9f;

        for (int i = 0; i < parts.Count; ++i)
        {
            PartSchematic schem = parts[i];

            OtherPartsItem item = handler.OtherPartsItemPool.GetObject().GetComponent <OtherPartsItem>();
            item.transform.SetParent(handler.OtherPartsItemsRoot, false);

            Vector2 anchorMin = new Vector2(0, 1 - (i + 1) * itemAnchorStep);
            Vector2 anchorMax = new Vector2(1, 1 - (i) * itemAnchorStep);

            RectTransform rect = item.GetComponent <RectTransform>();
            rect.anchorMin  = anchorMin;
            rect.anchorMax  = anchorMax;
            rect.offsetMin  = new Vector2();
            rect.offsetMax  = new Vector2();
            rect.localScale = new Vector3(1, 1, 1);

            item.Init(schem, handler);
            item.GetComponent <Button>().onClick.AddListener(delegate { ownedItemSelected(item); });
            items.Add(item);
        }
    }
示例#7
0
    private void initEquippedPartsViaPlayerSchematic()
    {
        EquippedParts = new List <PartSlot>();

        TankSchematic playerSchematic = PlayerManager.Instance.TankSchematic;

        List <PartSchematic> schematics = new List <PartSchematic> {
            playerSchematic.HullSchematic,
        };

        schematics.AddRange(playerSchematic.WeaponSchematics);

        for (int i = 0; i < schematics.Count; ++i)
        {
            PartSchematic schematic = schematics[i];

            PartSchematic.PartType pType = (schematic != null) ? schematic.PType : PartSchematic.PartType.Weapon;

            EquippedParts.Add(new PartSlot(schematic, pType, i));
        }
    }
示例#8
0
    public void UpdatePartInfo(PartSchematic part)
    {
        PartSchematic equipPart = PickedPartsItem != null ? PickedPartsItem.Slot.Part : null;

        partInfo.UpdatePartText(part, equipPart);
    }
示例#9
0
 public abstract string GetStatString(PartSchematic equippedSchem);
示例#10
0
 public void Init(PartSchematic schematic, CustomizationHandler _handler)
 {
     Part = schematic;
     partNameDisplay.text = Part != null ? Part.Name : "Empty";
     handler = _handler;
 }
示例#11
0
 public void UpdatePart(PartSchematic part)
 {
     Part = part;
 }
示例#12
0
 public PartSlot(PartSchematic part, PartSchematic.PartType pType, int idx)
 {
     Part     = part;
     PartType = pType;
     Idx      = idx;
 }