Esempio n. 1
0
    public SaveCollection GetClassSaves(RPGCharacterModel rcm)
    {
        SaveCollection retCol = new SaveCollection();

        string[] characterClasses = rcm.attributes.characterClass.GetDesc().Split('/');

        for(int i=0; i<characterClasses.Length;i++)
        {
            OSRIC_CLASS curClass = OSRICConstants.GetEnum<OSRIC_CLASS>(characterClasses[i]);
            foreach(OSRIC_SAVING_THROWS ost in Enum.GetValues(typeof(OSRIC_SAVING_THROWS)))
            {
                EnumSavePair sav = new EnumSavePair(ost, GetSaveValue(curClass,ost,rcm.attributes.level[i]));
                retCol.UpdateBestSave(sav);
            }
        }

        List<OSRICCharacterModifier> racialBonuses =
            rcm.attributes.CharacterModifiers.GetModifierByCharacterVariable(OSRIC_CHARACTER_VARIABLES.savingthrow);

        //		Debug.Log("Racial Bonuses: " + racialBonuses.Count.ToString());

        foreach(OSRICCharacterModifier ocm in racialBonuses)
        {
            Debug.Log(ocm.savingThrow.GetDesc() + " " + ocm.value.ToString());
            retCol.saveArr[(int)ocm.savingThrow].val += ocm.value;
        }

        return retCol;
    }
 void SetCharacterDetails(RPGCharacterModel cm)
 {
     foreach(LabelValueUIController lvuc in characterDetailsArr)
     {
         if(lvuc.labelText.text.ToLower().Contains("name"))
             lvuc.SetValueString(cm.attributes.characterName);
         else if(lvuc.labelText.text.ToLower().Contains("race"))
             lvuc.SetValueString(cm.attributes.characterRace.GetDesc());
         else if(lvuc.labelText.text.ToLower().Contains("class"))
             lvuc.SetValueString(cm.attributes.characterClass.GetDesc());
         else if(lvuc.labelText.text.ToLower().Contains("alignment"))
             lvuc.SetValueString(cm.attributes.characterAlignment.GetDesc());
         else if(lvuc.labelText.text.ToLower().Contains("level"))
         {
             string levelString = cm.attributes.level[0].ToString();
             for(int i=1;i<cm.attributes.level.Length;i++)
                 levelString += " / " + cm.attributes.level[i].ToString();
             lvuc.SetValueString(levelString);
         }
         else if(lvuc.labelText.text.ToLower().Contains("hp"))
             lvuc.SetValueString(cm.attributes.hitPoints.ToString());
         else if(lvuc.labelText.text.ToLower().Contains("ac"))
             lvuc.SetValueString(engine.ComputeArmorClass(charModel).ToString());
         else
             continue;
     }
 }
    public OSRICAttributeModel(RPGCharacterModel _cm, JSONObject _jo)
    {
        cm = _cm;
        CharacterModifiers = new OSRICModifierCollection();
        characterName = _jo["characterName"].str;
        Str = (int)_jo["Str"].n;
        Dex = (int)_jo["Dex"].n;
        Con = (int)_jo["Con"].n;
        Int = (int)_jo["Int"].n;
        Wis = (int)_jo["Wis"].n;
        Cha = (int)_jo["Cha"].n;
        hitPoints = (int)_jo["hitPoints"].n;

        string[] levelStr = _jo["level"].str.Split('/');
        level = new int[levelStr.Length];

        for(int i=0; i<levelStr.Length; i++)
            level[i] = Int32.Parse(levelStr[i]);

        experiencePoints = (int)_jo["experiencePoints"].n;
        vision = (int)_jo["vision"].n;
        move = (int)_jo["move"].n;
        characterGender = OSRICConstants.GetEnum<OSRIC_GENDER>(_jo["characterGender"].str);
        characterRace = OSRICConstants.GetEnum<OSRIC_RACE>(_jo["characterRace"].str);
        characterClass = OSRICConstants.GetEnum<OSRIC_CLASS>(_jo["characterClass"].str);
        characterAlignment = OSRICConstants.GetEnum<OSRIC_ALIGNMENT>(_jo["characterAlignment"].str);
        characterState = OSRICConstants.GetEnum<OSRIC_CHARACTER_STATE>(_jo["characterState"].str);
        foreach(JSONObject obj in _jo["CharacterModifiers"].list)
            CharacterModifiers.Add(new OSRICCharacterModifier(obj));
    }
 public void LoadCharacterAttributes(RPGCharacterModel cm)
 {
     if(gameObject.activeInHierarchy)
     {
         charModel = cm;
         UpdateAttributeViewInformation();
         SetCharacterDetails(cm);
         SetCharacterSavingThrows(cm);
     }
 }
Esempio n. 5
0
    public void SaveCharacter(RPGCharacterModel cm)
    {
        JSONObject addition = cm.attributes.Serialize();
        foreach(JSONObject jo in JSONCharacterList.list)
            if(CompareJSONCharacterAttributes(jo,addition))
                return;
        JSONCharacterList.Add(addition);

        StreamWriter sw = new StreamWriter(SavedCharactersFile,false);
        sw.Write(JSONCharacterList.ToString());
        sw.Close();
    }
Esempio n. 6
0
 public void LoadCharactersFromSaveFile()
 {
     StreamReader sr = new StreamReader(SavedCharactersFile);
     JSONCharacterList = new JSONObject(sr.ReadToEnd());
     if(JSONCharacterList.IsNull)
     {
         JSONCharacterList = new JSONObject(JSONObject.Type.ARRAY);
         return;
     }
     foreach(JSONObject jo in JSONCharacterList.list)
     {
         RPGCharacterModel cm = new RPGCharacterModel();
         cm.attributes = new OSRICAttributeModel(cm,jo);
     //			Debug.Log(cm.attributes.characterName);
         if(!mainCon.CharacterList.Contains(cm))
             mainCon.CharacterList.Add(cm);
     }
     //		Debug.Log(mainCon.CharacterList.Count);
 }
Esempio n. 7
0
 public void SaveAndReturn()
 {
     SaveCharacter();
     CurrentCharacter = null;
     SetToHomeMode();
 }
 public OSRICAttributeModel(RPGCharacterModel _cm)
 {
     cm = _cm;
     CharacterModifiers = new OSRICModifierCollection();
 }
Esempio n. 9
0
    public void RandomizeCharactersAttributes(RPGCharacterModel charmod)
    {
        //		if(!init)
        ResetChracterOptions(charmod.attributes);

        //		charmod.attributes.characterRace = OSRIC_RACE.Human;

        foreach(OSRIC_ATTRIBUTES oa in Enum.GetValues(typeof(OSRIC_ATTRIBUTES)))
        {
            charmod.attributes.SetBaseAttribute(oa,randomizeAttribute());
        }

        if(!AreAttributesViable(charmod.attributes))
            RandomizeCharactersAttributes(charmod);
    }
Esempio n. 10
0
 public SaveCollection GetSaveCollection(RPGCharacterModel cm)
 {
     return SaveTables.GetClassSaves(cm);
 }
Esempio n. 11
0
 public int ComputeArmorClass(RPGCharacterModel cm)
 {
     int ac = 10;
     int dex = cm.attributes.GetAttributeTotal(OSRIC_ATTRIBUTES.Dexterity);
     dex = attributeTable.GetYIndexOf(dex);
     ac += attributeTable.GetValue("dex_AC_adjustment",dex);
     return ac;
 }
Esempio n. 12
0
    public void CompleteCharacterCreation(RPGCharacterModel cm)
    {
        cm.attributes.level = LevelTables.GetAllClassLevels(cm);
        // HP computation
        int hpAccumulator, con, bonus, summedLevels;
        con = cm.attributes.GetAttributeTotal(OSRIC_ATTRIBUTES.Constitution);
        con = attributeTable.GetYIndexOf(con);
        bonus = attributeTable.GetValue("con_HP_per_die",con);
        // Get all levels and roll for each
        summedLevels = 0;
        foreach(int lev in cm.attributes.level)
            summedLevels += lev;

        hpAccumulator = 0;
        for(int i=0;i<summedLevels;i++)
            hpAccumulator += RollHitPoints(cm.attributes.characterClass, bonus,2);

        cm.attributes.hitPoints = hpAccumulator;
        cm.attributes.creationDate = DateTime.Now;
        cm.attributes.lastEditDate = DateTime.Now;
        Debug.Log(cm.attributes.Serialize().Print());

        //		numClass = cm.attributes.characterClass.GetDesc().Split('/').Length;
        //		cm.attributes.level = new int[numClass];
        //		for(int i=0;i<numClass;i++)
        //			cm.attributes.level[i]=1;
    }
Esempio n. 13
0
    public int[] GetAllNextLevelTarget(RPGCharacterModel _cm)
    {
        int pos = 0;
        string[] classArr = _cm.attributes.characterClass.GetDesc().Split('/');
        int[] retArr = new int[classArr.Length];

        foreach(string s in classArr)
        {
            retArr[pos] = GetNextLevelTarget(OSRICConstants.GetEnum<OSRIC_CLASS>(s),_cm.attributes.level[pos]);
        }
        return retArr;
    }
Esempio n. 14
0
 public void SetToHomeMode()
 {
     CurrentCharacter = null;
     DashboardUI.gameObject.SetActive(true);
     DashboardUI.UpdateCharacterList();
 }
Esempio n. 15
0
 public void LoadCharacter(RPGCharacterModel cm)
 {
     CurrentCharacter = cm;
     SetNavigationMode(NAV_STATE.CharacterViewer);
 }
Esempio n. 16
0
 public void DeleteCharacter(RPGCharacterModel rcm)
 {
     CharacterList.Remove(rcm);
 }
Esempio n. 17
0
 public void CreateCharacter()
 {
     CurrentCharacter = new RPGCharacterModel();
     CreatorUI.charModel = CurrentCharacter;
     engine.RandomizeCharactersAttributes(CurrentCharacter);
 }
Esempio n. 18
0
    public int[] GetAllClassLevels(RPGCharacterModel cm)
    {
        int[] retArr;
        int xp = cm.attributes.experiencePoints;
        OSRIC_RACE curRace = cm.attributes.characterRace;

        string[] classArr = cm.attributes.characterClass.GetDesc().Split('/');
        if(classArr.Length<2)
        {
            Debug.Log("Class Arr: " + classArr[0]);
            return new int[] {GetClassLevel(OSRICConstants.GetEnum<OSRIC_CLASS>(classArr[0]), curRace, xp)};
        }

        int splitXP = xp/classArr.Length;
        Debug.Log("Split XP: "+splitXP);
        retArr = new int[classArr.Length];

        for(int i=0; i<retArr.Length;i++)
        {
            retArr[i] = GetClassLevel( OSRICConstants.GetEnum<OSRIC_CLASS>(classArr[i]),curRace,splitXP);
        }

        return retArr;
    }
    void SetCharacterSavingThrows(RPGCharacterModel cm)
    {
        List<LabelValueUIController> saveUIList = new List<LabelValueUIController>();

        foreach(LabelValueUIController lvuc in characterDetailsArr)
        {
            if(lvuc.gameObject.name.ToLower().Contains("save"))
            {
                int insertAt = Int32.Parse(lvuc.name.Split('_')[1]);
                saveUIList.Insert((insertAt-1),lvuc);
                //saveList.Add(lvuc);
            }
        }
        SaveCollection saves = engine.GetSaveCollection(cm);
        int i = 0;
        foreach(EnumSavePair esp in saves.saveArr)
        {
            LabelValueUIController cur = saveUIList[i];
            cur.SetLableString(esp.save.GetDesc());
            cur.SetValueString(esp.val.ToString());
            i++;
        }
    }