Ejemplo n.º 1
0
 /// <summary>
 /// 按类型释放建筑
 /// </summary>
 /// <param name="building"></param>
 public void ReleaseBuilding(ICanBuild building)
 {
     if (building is ArrowTower)
     {
         ArrowTowerPoolObject.Release(building as ArrowTower);
     }
     else if (building is ArtilleryTower)
     {
         ArtilleryTowerPoolObject.Release(building as ArtilleryTower);
     }
     else if (building is IceTower)
     {
         IceTowerPoolObject.Release(building as IceTower);
     }
     else if (building is MagicTower)
     {
         MagicTowerPoolObject.Release(building as MagicTower);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// 重置预览建筑
    /// </summary>
    /// <param name="isRelease">是否释放(如果是则放回池并返还金币)</param>
    public void ResetPreview()
    {
        if (this.previewBuilding == null)
        {
            return;
        }

        this.previewBuilding.Effect.SetObstructArea(false);
        this.previewBuilding.Effect.SetDeployArea(false, false);
        this.previewBuilding.Effect.SetAttackRange(false);

        if (this.previewBuilding.BuildState == BuildState.PREVIEW)
        {
            // 返还金币
            GameScene.Instance.Money += this.previewBuilding.ConstructionCost;
            ReleaseBuilding(this.previewBuilding);
        }
        this.previewBuilding = null;
    }
Ejemplo n.º 3
0
    public void CreatePreviewBuilding(string name)
    {
        AudioManager.Instance.Play("Click1");
        ResetPreview();
        ICanBuild tempBuilding = null;

        if (name == nameof(ArrowTower))
        {
            tempBuilding = ArrowTowerPoolObject.Take();
        }
        else if (name == nameof(ArtilleryTower))
        {
            tempBuilding = ArtilleryTowerPoolObject.Take();
        }
        else if (name == nameof(IceTower))
        {
            tempBuilding = IceTowerPoolObject.Take();
        }
        else if (name == nameof(MagicTower))
        {
            tempBuilding = MagicTowerPoolObject.Take();
        }

        // 检查金币是否可以购买
        if (GameScene.Instance.Money >= tempBuilding.ConstructionCost)
        {
            GameScene.Instance.Money -= tempBuilding.ConstructionCost;
            this.previewBuilding      = tempBuilding;
            GameScene.Instance.Ground.FieldArea.SetFieldDisplayEnable(true);
            SetBuildingsObstructAreasEnable(true);
        }
        else
        {
            GameScene.Instance.UIManager.Money.TipsMonyeInsufficientCantBuilding();
            ReleaseBuilding(tempBuilding);
        }
    }