Example #1
0
    private void OnEnable()
    {
        // Reload skills database
        SkillDatabase.LoadSkills();
        skillNames = SkillDatabase.FindSkills(string.Empty);

        PlayerSkills  playerSkills      = target as PlayerSkills;
        List <string> invalidSkillNames = new List <string>();

        if (playerSkills.skillNames == null)
        {
            playerSkills.skillNames = new string[0];
        }
        foreach (string skillName in playerSkills.skillNames)
        {
            if (skillNames.Contains(skillName))
            {
                skillNames.Remove(skillName);
            }
            else
            {
                invalidSkillNames.Add(skillName);
            }
        }
        List <string> newSkillNames = new List <string>();

        newSkillNames.AddRange(playerSkills.skillNames);
        foreach (string invalidSkillName in invalidSkillNames)
        {
            newSkillNames.Remove(invalidSkillName);
        }
        playerSkills.skillNames = newSkillNames.ToArray();
    }
Example #2
0
    private void EditSkills()
    {
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Skills");
        EditorGUILayout.LabelField("To give a skill a higher chance of being");
        EditorGUILayout.LabelField("used add it in multiple times.");
        EditorGUILayout.Space();

        SerializedObject   skills    = new SerializedObject(Selection.activeGameObject.GetComponent <EnemySkills>());
        SerializedProperty skillList = skills.FindProperty("skillNames");

        if (!SkillDatabase.isLoaded)
        {
            SkillDatabase.LoadSkills();
        }

        int skillCount   = skillList.arraySize;
        int deleteTarget = -1;

        for (int i = 0; i < skillCount; i++)
        {
            SerializedProperty currentSkillName = skillList.GetArrayElementAtIndex(i);
            SkillDescriptor    currentSkill     = SkillDatabase.GetSkill(currentSkillName.stringValue);
            GUILayout.BeginHorizontal();

            GUILayout.Label(currentSkill.displayText);
            if (GUILayout.Button("Remove"))
            {
                deleteTarget = i;
            }
            GUILayout.EndHorizontal();
        }
        if (deleteTarget > -1)
        {
            skillList.DeleteArrayElementAtIndex(deleteTarget);
        }

        //put all skills into a combo box for selection
        List <SkillDescriptor> allSkills = SkillDatabase.GetAllSkills();

        string[] skillDisplay = new string[allSkills.Count];
        for (int i = 0; i < allSkills.Count; i++)
        {
            skillDisplay[i] = allSkills[i].displayText;
        }

        GUILayout.BeginHorizontal();
        currentSelectedPopUpSkill = EditorGUILayout.Popup(currentSelectedPopUpSkill, skillDisplay);
        if (GUILayout.Button("Add"))
        {
            int targetIndex = skillList.arraySize;
            skillList.InsertArrayElementAtIndex(targetIndex);
            SerializedProperty newSkill = skillList.GetArrayElementAtIndex(targetIndex);
            newSkill.stringValue = allSkills[currentSelectedPopUpSkill].name;
        }

        skills.ApplyModifiedProperties();
    }
Example #3
0
 // Use this for initialization
 void Start()
 {
     if (!SkillDatabase.isLoaded)
     {
         SkillDatabase.LoadSkills();
     }
     skills = new SkillDescriptor[skillNames.Length];
     for (int i = 0; i < skillNames.Length; i++)
     {
         skills[i] = SkillDatabase.GetSkill(skillNames[i]);
     }
 }
Example #4
0
    private void OnEnable()
    {
        // "What's this?"
        // This supports the effect expression interpreter.
        // We have to provide a list of valid variable names.
        // The values aren't important, since we're only looking for parse validity,
        // so we use 0 for everything.
        // This is the list of variables the user can enter into expression formulas
        // for effect magnitudes.
        //fixing a bug where this is being called more than once
        validVariables.Clear();
        validVariables.Add("SOURCE_STR", 0);
        validVariables.Add("SOURCE_CON", 0);
        validVariables.Add("SOURCE_WIL", 0);
        validVariables.Add("SOURCE_INT", 0);
        validVariables.Add("SOURCE_HP", 0);
        validVariables.Add("SOURCE_MP", 0);
        validVariables.Add("SOURCE_END", 0);
        validVariables.Add("SOURCE_RCT", 0);
        validVariables.Add("SOURCE_LVL", 0);
        validVariables.Add("SOURCE_PARMOR", 0);
        validVariables.Add("SOURCE_MARMOR", 0);

        validVariables.Add("TARGET_STR", 0);
        validVariables.Add("TARGET_CON", 0);
        validVariables.Add("TARGET_WIL", 0);
        validVariables.Add("TARGET_INT", 0);
        validVariables.Add("TARGET_HP", 0);
        validVariables.Add("TARGET_MP", 0);
        validVariables.Add("TARGET_END", 0);
        validVariables.Add("TARGET_RCT", 0);
        validVariables.Add("TARGET_LVL", 0);
        validVariables.Add("TARGET_PARMOR", 0);
        validVariables.Add("TARGET_MARMOR", 0);


        effectDisplayNames.Clear();
        effectsByName.Clear();

        effectDisplayNames.Add(CombatEffectBase.Effect.HealHitPoints, "Heal HP");
        effectDisplayNames.Add(CombatEffectBase.Effect.MagicDamage, "Magic Damage");
        effectDisplayNames.Add(CombatEffectBase.Effect.ManaDrain, "Mana Drain");
        effectDisplayNames.Add(CombatEffectBase.Effect.WeaponDamage, "Weapon Damage");

        foreach (CombatEffectBase.Effect effect in effectDisplayNames.Keys)
        {
            effectsByName.Add(effectDisplayNames[effect], effect);
        }



        SkillDatabase.LoadSkills();
    }