Пример #1
0
    // Adds a new Skill
    public Skill add_skill(string Skill_name, Unit unit)
    {
        GameObject new_skill;

        // Instantiate a skill object
        if (unit.is_player())
        {
            new_skill = Instantiate(skill, player_skills_holder.transform);
        }
        else
        {
            new_skill = Instantiate(skill /*, unit.gameObject.transform*/);
        }

        // Get the specified skillAbstract based on the Skill_name
        SkillAbstract skillAbstract = get_SkillAbstract_byName(Skill_name, unit);

        // Assign skillAbstract parameters to a skill new_skill
        assign_skill_parameters(ref skillAbstract, ref new_skill);

        // Assign owner unit
        new_skill.GetComponent <Skill>().owner_unit = unit;

        // Return the new_skill to the Unit, so it knows what new Skill it has
        return(new_skill.GetComponent <Skill>());
    }
Пример #2
0
    // Moves over the parameters of SkillAbstract to NewSkill of the unit
    private void assign_skill_parameters(ref SkillAbstract SkillAbstract, ref GameObject NewSkill)
    {
        // Get a handle on the script of the NewSkill
        Skill new_skill = NewSkill.GetComponent <Skill>();

        // Populate data
        new_skill.universal      = SkillAbstract.universal;
        new_skill.general        = SkillAbstract.general;
        new_skill.cost           = SkillAbstract.cost;
        new_skill.gain           = SkillAbstract.gain;
        new_skill.status         = SkillAbstract.status;
        new_skill.charge         = SkillAbstract.charge;
        new_skill.skill_advanced = SkillAbstract.skill_advanced;
        new_skill.damage_info    = SkillAbstract.damage_info;
        new_skill.prerequisite   = SkillAbstract.prerequisite;
        new_skill.pooling        = SkillAbstract.pooling;
        new_skill.picking        = SkillAbstract.picking;
    }