コード例 #1
0
    public override bool AddToThisInventory(AStack aStack)
    {
        SkillStack stack = aStack as SkillStack;

        var skillSaves = GameManager.Instance.SavablePlayerData.PlayerProgress.Skills;

        switch (skillNum)
        {
        case SkillNum.FIRS:
            Squad.playerSquadInstance.Inventory.FirstSkill.Skill      = stack.Skill;
            Squad.playerSquadInstance.Inventory.FirstSkill.SkillStats = stack.SkillStats;
            skillSaves.firstSkill = Squad.playerSquadInstance.Inventory.FirstSkill;
            break;

        case SkillNum.SECOND:
            Squad.playerSquadInstance.Inventory.SecondSkill.Skill      = stack.Skill;
            Squad.playerSquadInstance.Inventory.SecondSkill.SkillStats = stack.SkillStats;
            skillSaves.secondSkill = Squad.playerSquadInstance.Inventory.SecondSkill;
            break;
        }

        PlayUiEffectForEquipmant();

        return(true);
    }
コード例 #2
0
 static AExecutableBehaviour GetBehaviourSkill(SkillStack stack, AiSquadController controller)
 {
     if (stack.Skill is SkillCharge)
     {
         return(new SkillChargeBehaviour(controller, stack));
     }
     else if (stack.Skill is SkillArrowsValley)
     {
         return(new ArrowVolleyBehaviour(controller, stack));
     }
     else
     {
         return(null);
     }
 }
コード例 #3
0
    SkillStack GetConsumable(SkillContainer[] equipments)
    {
        SkillStack res = null;

        if (equipments.Length > 0)
        {
            float t     = GameManager.Instance.CurrentLevel.WholeLevelT;
            float val   = skillLevelDependency.Evaluate(t);
            int   index = Mathf.RoundToInt(skillLevelDependency.Evaluate(t) * (equipments.Length - 1));
            int   l2    = equipments[index].randomSkills.Length;
            var   skill = equipments[index].randomSkills[UnityEngine.Random.Range(0, l2)];
            res = new SkillStack(skill, skill.DefaultStats);
        }

        return(res);
    }
コード例 #4
0
    public override bool RemoveFromThisInventory(AStack aStack)
    {
        SkillStack stack = aStack as SkillStack;

        switch (skillNum)
        {
        case SkillNum.FIRS:
            Squad.playerSquadInstance.Inventory.FirstSkill.Skill = null;
            break;

        case SkillNum.SECOND:
            Squad.playerSquadInstance.Inventory.SecondSkill.Skill = null;
            break;
        }

        return(true);
    }
コード例 #5
0
    public static string ReturnStackTypeByString(SkillStack sGen)
    {
        switch (sGen)
        {
        case SkillStack.rng: return("Multiple stacks increase range of effect by 1.");

        case SkillStack.buff: return("Multiple stacks increase buff by 1.");

        case SkillStack.move: return("Multiple stacks increase tile effect turns by 1.");

        case SkillStack.skele: return("Multiple stacks increase wisp hp and atk by 1.");

        case SkillStack.turns: return("Multiple stacks increase turns of effect.");

        case SkillStack.nostack: return("Effect does not stack.");

        default: return("");
        }
    }
コード例 #6
0
 public SkillChargeBehaviour(AiSquadController controller, SkillStack stack) : base(controller)
 {
     this.stack = stack;
 }
コード例 #7
0
 public ArrowVolleyBehaviour(AiSquadController controller, SkillStack stack) : base(controller)
 {
     this.stack = stack;
 }
コード例 #8
0
    private void Initiate()
    {
        if (typeOfSkill == Type.SKILL)
        {
            switch (skillNum)
            {
            case SkillNum.FIRS:
                currentSkill = playerInventory.FirstSkill;
                break;

            case SkillNum.SECOND:
                currentSkill = playerInventory.SecondSkill;
                break;
            }

            if (currentSkill.Skill != null)
            {
                img.sprite = currentSkill.Skill.MainPropertie.Icon;
                useType    = currentSkill.Skill.UseType;
            }
        }
        else
        {
            switch (skillNum)
            {
            case SkillNum.FIRS:
                currentConsumable = playerInventory.FirstConsumable;
                break;

            case SkillNum.SECOND:
                currentConsumable = playerInventory.SecondConsumable;
                break;
            }
            if (currentConsumable.Consumable != null)
            {
                useType    = currentConsumable.Consumable.UseType;
                img.sprite = currentConsumable.Consumable.MainPropertie.Icon;
                currentConsumable.Consumable.CallbackUsedCount += DecrementUsedConsumableCount;
            }
        }

        if ((currentSkill != null && currentSkill.Skill == null) || (currentConsumable != null && currentConsumable.Consumable == null))
        {
            Destroy(cell);
            return;
        }
        else
        {
            if (typeOfSkill == Type.CONSUMABLE)
            {
                if (currentConsumable.Count < 0)
                {
                    countText.enabled = false;
                }
                else
                {
                    countText.text = currentConsumable.Count.ToString(StringFormats.intNumber);
                }
            }
            else
            {
                countText.enabled = false;
            }
        }
    }
コード例 #9
0
 public void Reset()
 {
     skills      = new List <DSPlayerSkill>();
     firstSkill  = null;
     secondSkill = null;
 }