Пример #1
0
    public void GhostAbility(AbstractTrapBehaviour abstractTrapBehaviour)
    {
        var trapsManager = GameObject.FindObjectOfType <TrapsManager>();

        var abilityGoPrefab = trapsManager.GetAbilityEffectForCreep(abstractTrapBehaviour.Model.AbilityType);

        var go = GameObject.Instantiate(abilityGoPrefab);

        go.transform.position = this.transform.position;

        go.transform.parent = this.transform;

        go.transform.localScale *= 0.5f;

        var moveSpeed = this.Model.MoveSpeed;

        this.Model.MoveSpeed = moveSpeed * 0.5f;

        this.Buffs.Add(new CreepBuff("ghost"));

        var animSpeed = anim.speed;

        anim.speed = 0.5f;

        StartCoroutine(FrostCor(moveSpeed, animSpeed, go, 5f));
    }
Пример #2
0
    public void FrostAbility(AbstractTrapBehaviour abstractTrapBehaviour)
    {
        var trapsManager = GameObject.FindObjectOfType <TrapsManager>();

        var abilityGoPrefab = trapsManager.GetAbilityEffectForCreep(abstractTrapBehaviour.Model.AbilityType);

        var go = GameObject.Instantiate(abilityGoPrefab);

        go.transform.position = this.transform.position;

        var moveSpeed = this.Model.MoveSpeed;

        this.Model.MoveSpeed = 0f;

        var animSpeed = anim.speed;

        anim.speed = 0f;

        StartCoroutine(FrostCor(moveSpeed, animSpeed, go, 2f));
    }
Пример #3
0
    public void EnvenomAbility(AbstractTrapBehaviour abstractTrapBehaviour)
    {
        var trapsManager = GameObject.FindObjectOfType <TrapsManager>();

        var abilityGoPrefab = trapsManager.GetAbilityEffectForCreep(abstractTrapBehaviour.Model.AbilityType);

        var go = GameObject.Instantiate(abilityGoPrefab);

        go.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + 0.05f, this.transform.position.z);

        go.transform.parent = this.transform;

        go.transform.localScale *= 0.3f;

        var moveSpeed = this.Model.MoveSpeed;

        this.Model.MoveSpeed = moveSpeed * 0.3f;

        var animSpeed = anim.speed;

        anim.speed = 0.3f;

        StartCoroutine(FrostCor(moveSpeed, animSpeed, go, 5f));
    }
    public void UpgradeTower(AbstractTrapBehaviour selectedTrap)
    {
        selectedTrap.UpgadeTrap();

        Money -= selectedTrap.Model.MoneyCost;
    }
 public bool CanUpgradeTower(AbstractTrapBehaviour selectedTrap)
 {
     return(Money >= selectedTrap.Model.MoneyCost);
 }
Пример #6
0
 public void StealAbility(AbstractTrapBehaviour abstractTrapBehaviour)
 {
     playerManager.BackBrains(this);
 }
    public void DisplayCurrentTrapInfo(AbstractTrapBehaviour trap)
    {
        this.TrapPlace = trap.TrapPlace;

        this.TrapName.text            = trap.Model.TrapName;
        this.DamageText.text          = string.Format("{0} - {1}", trap.Model.MinDamage, trap.Model.MaxDamage);
        this.AttackSpeedText.text     = trap.Model.AttackSpeed.ToString("F1");
        this.TrapImage.overrideSprite = trap.GetComponentInChildren <SpriteRenderer>().sprite;
        this.TrapImage.color          = trap.GetComponentInChildren <SpriteRenderer>().color;

        this.UpgradeTrapName.gameObject.SetActive(!trap.Model.IsMaxLevelUpgrade());
        this.UpgradeTrapInfoPanel.gameObject.SetActive(!trap.Model.IsMaxLevelUpgrade());
        this.UpgradeCost.gameObject.SetActive(!trap.Model.IsMaxLevelUpgrade());
        this.UpGradeButton.gameObject.SetActive(!trap.Model.IsMaxLevelUpgrade());

        if (trap.Model.IsMaxLevelUpgrade() == false)
        {
            this.UpgradeTrapName.text        = trap.Model.NextUpgradeTrap.TrapName;
            this.UpgradeDamageText.text      = string.Format("{0} - {1}", trap.Model.NextUpgradeTrap.MinDamage, trap.Model.NextUpgradeTrap.MaxDamage);
            this.UpgradeAttackSpeedText.text = trap.Model.NextUpgradeTrap.AttackSpeed.ToString("F1");
            this.UpgradeCost.text            = trap.Model.NextUpgradeTrap.MoneyCost.ToString();
        }

        #region AttackType

        FearType.color   = new Color(1f, 1f, 1f, 0.3f);
        LightType.color  = new Color(1f, 1f, 1f, 0.3f);
        ChaosType.color  = new Color(1f, 1f, 1f, 0.3f);
        PoisonType.color = new Color(1f, 1f, 1f, 0.3f);

        switch (trap.Model.AttackType)
        {
        case TrapAttackType.Fear:
            FearType.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAttackType.Light:
            LightType.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAttackType.Chaos:
            ChaosType.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAttackType.Poison:
            PoisonType.color = new Color(1f, 1f, 1f, 1f);
            break;
        }

        #endregion

        #region Ability

        FrostAbility.color   = new Color(1f, 1f, 1f, 0.3f);
        EnvenomAbility.color = new Color(1f, 1f, 1f, 0.3f);
        StealAbility.color   = new Color(1f, 1f, 1f, 0.3f);
        GhostAbility.color   = new Color(1f, 1f, 1f, 0.3f);

        switch (trap.Model.AbilityType)
        {
        case TrapAbilityType.None:
            break;

        case TrapAbilityType.Frost:
            FrostAbility.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAbilityType.Envenom:
            EnvenomAbility.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAbilityType.Steal:
            StealAbility.color = new Color(1f, 1f, 1f, 1f);
            break;

        case TrapAbilityType.Ghost:
            GhostAbility.color = new Color(1f, 1f, 1f, 1f);
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
        #endregion

        #region Upgrade Ability

        if (trap.Model.IsMaxLevelUpgrade() == false)
        {
            UpgradeFrostAbility.color   = new Color(1f, 1f, 1f, 0.3f);
            UpgradeEnvenomAbility.color = new Color(1f, 1f, 1f, 0.3f);
            UpgradeStealAbility.color   = new Color(1f, 1f, 1f, 0.3f);
            UpgradeGhostAbility.color   = new Color(1f, 1f, 1f, 0.3f);

            switch (trap.Model.NextUpgradeTrap.AbilityType)
            {
            case TrapAbilityType.None:
                break;

            case TrapAbilityType.Frost:
                UpgradeFrostAbility.color = new Color(1f, 1f, 1f, 1f);
                break;

            case TrapAbilityType.Envenom:
                UpgradeEnvenomAbility.color = new Color(1f, 1f, 1f, 1f);
                break;

            case TrapAbilityType.Steal:
                UpgradeStealAbility.color = new Color(1f, 1f, 1f, 1f);
                break;

            case TrapAbilityType.Ghost:
                UpgradeGhostAbility.color = new Color(1f, 1f, 1f, 1f);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }

        #endregion
    }