Exemplo n.º 1
0
    public static bool ReadTowerData(XElement towerData, TowerAssetData assetData, Declarations.TowerType towerType, out Declarations.TowerData tower)
    {
        switch (towerType)
        {
        case Declarations.TowerType.Canon:
            return(ReadCanonData(towerData, assetData, out tower));

        case Declarations.TowerType.Plasma:
            return(ReadPlasmaData(towerData, assetData, out tower));

        case Declarations.TowerType.Crystal:
            return(ReadCrystalData(towerData, assetData, out tower));

        case Declarations.TowerType.Tesla:
            return(ReadTeslaData(towerData, assetData, out tower));

        case Declarations.TowerType.Laser:
            return(ReadLaserData(towerData, assetData, out tower));

        case Declarations.TowerType.Radar:
            return(ReadRadarData(towerData, assetData, out tower));

        default:
            Debug.Log("Unknown tower type");
            break;
        }
        tower = null;
        return(false);
    }
Exemplo n.º 2
0
    private static bool ReadCanonData(XElement towerData, TowerAssetData assetData, out Declarations.TowerData tower)
    {
        var levels = new Declarations.FiringTowerLevelData[3];

        bool failed = false;

        #region Level1
        var level1 = towerData.Element(Constants.cst_Level1);
        if (level1 != null)
        {
            levels[0] = new Declarations.FiringTowerLevelData(ReadInt(level1, Constants.cst_Price, ref failed),
                                                              ReadFloat(level1, Constants.cst_Range, ref failed),
                                                              ReadFloat(level1, Constants.cst_FireRate, ref failed),
                                                              ReadInt(level1, Constants.cst_Damage, ref failed));
        }
        else
        {
            failed = true;
        }
        #endregion

        #region Level2
        var level2 = towerData.Element(Constants.cst_Level2);
        if (level2 != null)
        {
            levels[1] = new Declarations.FiringTowerLevelData(ReadInt(level2, Constants.cst_UpgradePrice, ref failed),
                                                              ReadFloat(level2, Constants.cst_Range, ref failed),
                                                              ReadFloat(level2, Constants.cst_FireRate, ref failed),
                                                              ReadInt(level2, Constants.cst_Damage, ref failed));
        }
        else
        {
            failed = true;
        }
        #endregion

        #region Level3
        var level3 = towerData.Element(Constants.cst_Level3);
        if (level3 != null)
        {
            levels[2] = new Declarations.FiringTowerLevelData(ReadInt(level3, Constants.cst_UpgradePrice, ref failed),
                                                              ReadFloat(level3, Constants.cst_Range, ref failed),
                                                              ReadFloat(level3, Constants.cst_FireRate, ref failed),
                                                              ReadInt(level3, Constants.cst_Damage, ref failed));
        }
        #endregion

        if (failed)
        {
            Debug.Log("Filed to read canon tower");
            tower = null;
            return(false);
        }
        else
        {
            tower = new Declarations.CanonTower(assetData, levels);
            return(true);
        }
    }
Exemplo n.º 3
0
        protected TowerData(TowerType type, TowerAssetData assetData, TowerLevelData[] levels)
        {
            Type         = type;
            AssetData    = assetData;
            CurrentLevel = 1;
            Upgraded     = new UnityEvent();

            Levels = levels;
        }
Exemplo n.º 4
0
 public RadarTower(TowerAssetData assetData, TowerLevelData[] levels) :
     base(TowerType.Radar, assetData, levels)
 {
 }
Exemplo n.º 5
0
 public LaserTower(TowerAssetData assetData, DamageTowerLevelData[] levels) :
     base(TowerType.Laser, assetData, levels)
 {
 }
Exemplo n.º 6
0
 public TeslaTower(TowerAssetData assetData, TeslaLevelData[] levels) :
     base(TowerType.Tesla, assetData, levels)
 {
 }
Exemplo n.º 7
0
 public CrystalTower(TowerAssetData assetData, CrystalLevelData[] levels) :
     base(TowerType.Crystal, assetData, levels)
 {
 }
Exemplo n.º 8
0
 public PlasmaTower(TowerAssetData assetData, PlasmaLevelData[] levels) :
     base(TowerType.Plasma, assetData, levels)
 {
 }
Exemplo n.º 9
0
 public CanonTower(TowerAssetData assetData, FiringTowerLevelData[] levels) :
     base(TowerType.Canon, assetData, levels)
 {
 }
Exemplo n.º 10
0
 protected FiringTowerData(TowerType type, TowerAssetData assetData, FiringTowerLevelData[] levels) : base(type, assetData, levels)
 {
 }
Exemplo n.º 11
0
 protected DamageTowerData(TowerType type, TowerAssetData assetData, DamageTowerLevelData[] levels) : base(type, assetData, levels)
 {
 }