/// <summary>
        /// Removes the selected language from the known languages ListBox, replacing back into the learnable languages ListBox, if the language is removeable
        /// </summary>
        /// <param name="index">The index value of the language</param>
        public void RemoveKnownLanguage(int index)
        {
            ListBox  knownLanguages     = _knownLanguages.GetComponent <ListBox>();
            ListBox  learnableLanguages = _learnableLanguages.GetComponent <ListBox>();
            ListItem listItem           = knownLanguages.GetListItem(index);

            if (listItem.IsRemoveable)
            {
                ListBox.MoveItem(index, knownLanguages, learnableLanguages, true);
            }

            // TODO: The following code prevents more bonus languages been added than should be, needs moving/refactoring
            RaceBase characterRace = GetCharacterRace();

            int initialLanguages     = characterRace.KnownLanguages.Count;
            int addedLanguages       = knownLanguages.Options.Count - initialLanguages;
            int intelligenceModifier = ParseAbilityModifier(typeof(Intelligence));

            // all bonus languages have been added
            if (addedLanguages < intelligenceModifier)
            {
                // set all learnable languages to IsRemoveable = true
                foreach (Transform option in learnableLanguages.content.transform)
                {
                    listItem = option.GetComponent <ListItem>();
                    listItem.IsRemoveable = true;
                }
            }
        }
示例#2
0
        public void Treat(RaceBase race)
        {
            int hp = (100 - race.Health) / 2;

            race.Health += hp;
            Console.WriteLine("\n" + race.GetType().Name.ToString() + ": Restores health = " + hp + " hp");
        }
        /// <summary>
        /// Returns the selected character race
        /// </summary>
        /// <returns>A character race corresponding to the race selection</returns>
        private RaceBase GetCharacterRace()
        {
            Dropdown.OptionData optionData = GetSelectedDropdownOption(_characterRace);

            RaceBase characterRace = CharacterCreator.FindCharacterRace(optionData.text);

            return(characterRace);
        }
 public TemplateChecker(StatBlockMessageWrapper _messageXML, MonSBSearch _monSBSearch, RaceBase Race_Base, MonsterStatBlock MonSB, ClassMaster CharacterClasses)
 {
     this._messageXML      = _messageXML;
     this._monSBSearch     = _monSBSearch;
     this.Race_Base        = Race_Base;
     this.MonSB            = MonSB;
     this.CharacterClasses = CharacterClasses;
 }
示例#5
0
 public void Ressurect(RaceBase race)
 {
     if (race.Health <= 0)
     {
         race.Health = 100;
         Console.WriteLine(race.GetType().Name.ToString() + ": I'm alive again! (100 hp)");
     }
 }
示例#6
0
        /// <summary>
        ///  Create Minion
        /// </summary>
        ///


        private NPCBase(Gender gender, RaceBase race, Class.AgentClassBase @class, string name, NPCBase Leader) : this(Leader.World, gender, race, @class, name, 0, 0)
        {
            if (Leader.PartyMembers == null)
            {
                Leader.PartyMembers = new List <NPCBase>();
            }
            IsPartyMember = true;
            Leader.PartyMembers.Add(this); /// DA DA DA DA! X joined y's party :p
        }
        /// <summary>
        /// Event handler for character race selection
        /// </summary>
        public void SelectedRaceChanged()
        {
            RaceBase characterRace = GetCharacterRace();

            UpdateRacialAbilityModifiers(characterRace);
            UpdateAbilityModifiers();

            UpdateKnownLanguages();
            UpdateLearnableLanguages();
        }
        /// <summary>
        /// Updates the content of the learnable languages listbox for the currently selected character race
        /// </summary>
        private void UpdateLearnableLanguages()
        {
            RaceBase characterRace             = GetCharacterRace();
            List <Dropdown.OptionData> options = GetOptionData(characterRace.LearnableLanguages);

            ListBox learnableLanguages = _learnableLanguages.GetComponent <ListBox>();

            learnableLanguages.ClearOptions();
            learnableLanguages.AddOptions(options, true);
        }
        // TODO: CharacterRace is being used at least twice now, it would be more efficient to store the
        //       selection in a local variable or start to build an object to hold the values than retrieve
        //       them each time they are required.

        /// <summary>
        /// Updates the content of the known languages listbox for the currently selected character race
        /// </summary>
        private void UpdateKnownLanguages()
        {
            RaceBase characterRace             = GetCharacterRace();
            List <Dropdown.OptionData> options = GetOptionData(characterRace.KnownLanguages);

            ListBox knownLanguages = _knownLanguages.GetComponent <ListBox>();

            knownLanguages.ClearOptions();
            knownLanguages.AddOptions(options, false);
        }
示例#10
0
 public SavesChecker(ClassMaster CharacterClasses, IndividualStatBlock_Combat _indvSB, RaceBase Race_Base, List <MagicItemAbilitiesWrapper> MagicItemAbilities,
                     MonSBSearch _monSBSearch, MonsterStatBlock MonSB, AbilityScores.AbilityScores _abilityScores, StatBlockMessageWrapper _messageXML)
 {
     this.MagicItemAbilities = MagicItemAbilities;
     this.CharacterClasses   = CharacterClasses;
     this._indvSB            = _indvSB;
     this.Race_Base          = Race_Base;
     this._monSBSearch       = _monSBSearch;
     this.MonSB          = MonSB;
     this._messageXML    = _messageXML;
     this._abilityScores = _abilityScores;
 }
        /// <summary>
        /// Enables or disables the learnable languages listbox
        /// </summary>
        private void ToggleLearnableLanguages()
        {
            RaceBase characterRace = GetCharacterRace();
            int      modifier      = ParseAbilityModifier(typeof(Intelligence));

            if (modifier > 0 && characterRace)
            {
                _learnableLanguagesContainer.SetActive(true);
            }
            else
            {
                _learnableLanguagesContainer.SetActive(false);
            }
        }
示例#12
0
        /// <summary>
        /// Initialises the character
        /// </summary>
        /// <param name="strength">The character's strength ability's base score</param>
        /// <param name="dexterity">The character's dexterity ability's base score</param>
        /// <param name="constitution">The character's constitution ability's base score</param>
        /// <param name="intelligence">The character's intelligence ability's base score</param>
        /// <param name="wisdom">The character's wisdom ability's base score</param>
        /// <param name="charisma">The character's charisma ability's base score</param>
        /// <param name="strengthModifier">The character's strength modifier</param>
        /// <param name="dexterityModifier">The character's dexterity modifier</param>
        /// <param name="constitutionModifier">The character's constitution modifier</param>
        /// <param name="intelligenceModifier">The character's intelligence modifier</param>
        /// <param name="wisdomModifier">The character's wisdom modifier</param>
        /// <param name="charismaModifier">The character's charisma modifier</param>
        /// <param name="characterRace">The character's race</param>
        /// <param name="knownLanguages">The character's known languages</param>
        /// <param name="favouredClass">The character's favoured class</param>
        /// <param name="experience">The character's experience</param>
        private void Initialise
        (
            int strength,
            int dexterity,
            int constitution,
            int intelligence,
            int wisdom,
            int charisma,
            int strengthModifier,
            int dexterityModifier,
            int constitutionModifier,
            int intelligenceModifier,
            int wisdomModifier,
            int charismaModifier,
            RaceBase characterRace,
            List <Language> knownLanguages,
            ClassBase favouredClass,
            int experience
        )
        {
            _baseStrength     = strength;
            _baseDexterity    = dexterity;
            _baseConstitution = constitution;
            _baseIntelligence = intelligence;
            _baseWisdom       = wisdom;
            _baseCharisma     = charisma;

            _modifiedStrength     = _baseStrength;
            _modifiedDexterity    = _baseDexterity;
            _modifiedConstitution = _baseConstitution;
            _modifiedIntelligence = _baseIntelligence;
            _modifiedWisdom       = _baseWisdom;
            _modifiedCharisma     = _baseCharisma;

            _strengthModifier     = strengthModifier;
            _dexterityModifier    = dexterityModifier;
            _constitutionModifier = constitutionModifier;
            _intelligenceModifier = intelligenceModifier;
            _wisdomModifier       = wisdomModifier;
            _charismaModifier     = charismaModifier;

            _characterRace  = characterRace;
            _knownLanguages = knownLanguages;
            _favouredClass  = favouredClass;

            _experience = experience;

            CalculateHealth();
        }
示例#13
0
        /// <summary>
        /// Initialises a new instance of the <see cref="Character" /> class
        /// </summary>
        /// <param name="strength">The character's base strength ability</param>
        /// <param name="dexterity">The character's base dexterity ability</param>
        /// <param name="constitution">The character's base constitution ability</param>
        /// <param name="intelligence">The character's base intelligence ability</param>
        /// <param name="wisdom">The character's base wisdom ability</param>
        /// <param name="charisma">The character's base charisma ability</param>
        /// <param name="strengthModifier">The character's strength modifier</param>
        /// <param name="dexterityModifier">The character's dexterity modifier</param>
        /// <param name="constitutionModifier">The character's constitution modifier</param>
        /// <param name="intelligenceModifier">The character's intelligence modifier</param>
        /// <param name="wisdomModifier">The character's wisdom modifier</param>
        /// <param name="charismaModifier">The character's charisma modifier</param>
        /// <param name="characterRace">The character's race</param>
        /// <param name="knownLanguages">The character's known languages</param>
        /// <param name="favouredClass">The character's favoured class</param>
        /// <param name="experience">The character's experience</param>
        /// <param name="hitDie">The character's hit die</param>
        /// <param name="health">The character's base health</param>
        /// <returns>Character</returns>
        public static Character CreateInstance
        (
            int strength,
            int dexterity,
            int constitution,
            int intelligence,
            int wisdom,
            int charisma,
            int strengthModifier,
            int dexterityModifier,
            int constitutionModifier,
            int intelligenceModifier,
            int wisdomModifier,
            int charismaModifier,
            RaceBase characterRace,
            List <Language> knownLanguages,
            ClassBase favouredClass,
            int experience
        )
        {
            Character character = ScriptableObject.CreateInstance <Character>();

            character.Initialise
            (
                strength,
                dexterity,
                constitution,
                intelligence,
                wisdom,
                charisma,
                strengthModifier,
                dexterityModifier,
                constitutionModifier,
                intelligenceModifier,
                wisdomModifier,
                charismaModifier,
                characterRace,
                knownLanguages,
                favouredClass,
                experience
            );

            return(character);
        }
        /// <summary>
        /// Event handler for character creation
        /// </summary>
        public void CreateCharacter()
        {
            int             baseStrength         = CalculateBaseAbility(typeof(Strength));
            int             baseDexterity        = CalculateBaseAbility(typeof(Dexterity));
            int             baseConstitution     = CalculateBaseAbility(typeof(Constitution));
            int             baseIntelligence     = CalculateBaseAbility(typeof(Intelligence));
            int             baseWisdom           = CalculateBaseAbility(typeof(Wisdom));
            int             baseCharisma         = CalculateBaseAbility(typeof(Charisma));
            int             strengthModifier     = ParseAbilityModifier(typeof(Strength));
            int             dexterityModifier    = ParseAbilityModifier(typeof(Dexterity));
            int             constitutionModifier = ParseAbilityModifier(typeof(Constitution));
            int             intelligenceModifier = ParseAbilityModifier(typeof(Intelligence));
            int             wisdomModifier       = ParseAbilityModifier(typeof(Wisdom));
            int             charismaModifier     = ParseAbilityModifier(typeof(Charisma));
            RaceBase        characterRace        = GetCharacterRace();
            List <Language> bonusLanguages       = GetBonusLanguages();
            ClassBase       characterClass       = GetCharacterClass();
            int             experience           = ParseAttribute(typeof(Experience));

            Character character = CharacterCreator.Create
                                  (
                baseStrength,
                baseDexterity,
                baseConstitution,
                baseIntelligence,
                baseWisdom,
                baseCharisma,
                strengthModifier,
                dexterityModifier,
                constitutionModifier,
                intelligenceModifier,
                wisdomModifier,
                charismaModifier,
                characterRace,
                bonusLanguages,
                characterClass,
                experience
                                  );

            // TODO: Temporary
            Player player = GameObject.FindObjectOfType <Player>();

            player.character = character;
        }
示例#15
0
        /// <summary>
        /// Initialises a new instance of the <see cref="Character" /> class
        /// </summary>
        /// <param name="strength">The character's base strength ability</param>
        /// <param name="dexterity">The character's base dexterity ability</param>
        /// <param name="constitution">The character's base constitution ability</param>
        /// <param name="intelligence">The character's base intelligence ability</param>
        /// <param name="wisdom">The character's base wisdom ability</param>
        /// <param name="charisma">The character's base charisma ability</param>
        /// <param name="strengthModifier">The character's strength modifier</param>
        /// <param name="dexterityModifier">The character's dexterity modifier</param>
        /// <param name="constitutionModifier">The character's constitution modifier</param>
        /// <param name="intelligenceModifier">The character's intelligence modifier</param>
        /// <param name="wisdomModifier">The character's wisdom modifier</param>
        /// <param name="charismaModifier">The character's charisma modifier</param>
        /// <param name="characterRace">The character's race</param>
        /// <param name="bonusLanguages">The character's chosen bonus languages</param>
        /// <param name="characterClass">The character's class</param>
        /// <param name="experience">The character's experience</param>
        /// <returns>Character</returns>
        public static Character Create
        (
            int strength,
            int dexterity,
            int constitution,
            int intelligence,
            int wisdom,
            int charisma,
            int strengthModifier,
            int dexterityModifier,
            int constitutionModifier,
            int intelligenceModifier,
            int wisdomModifier,
            int charismaModifier,
            RaceBase characterRace,
            List <Language> bonusLanguages,
            ClassBase characterClass,
            int experience
        )
        {
            Character character = Character.CreateInstance
                                  (
                strength,
                dexterity,
                constitution,
                intelligence,
                wisdom,
                charisma,
                strengthModifier,
                dexterityModifier,
                constitutionModifier,
                intelligenceModifier,
                wisdomModifier,
                charismaModifier,
                characterRace,
                bonusLanguages,
                characterClass,
                experience
                                  );

            return(character);
        }
        /// <summary>
        /// Updates the racial ability modifiers for the selected race
        /// </summary>
        /// <param name="characterRace">The character race</param>
        private void UpdateRacialAbilityModifiers(RaceBase characterRace)
        {
            ClearRacialAbilityModifiers();

            if (characterRace.AbilityModifiers.Count == 0)
            {
                EnableRacialModifierSelection();
            }
            else
            {
                DisableRacialModifierSelection();

                UpdateRacialAbilityModifier(_strengthRacialModifier, characterRace.GetModifier <Strength>());
                UpdateRacialAbilityModifier(_dexterityRacialModifier, characterRace.GetModifier <Dexterity>());
                UpdateRacialAbilityModifier(_constitutionRacialModifier, characterRace.GetModifier <Constitution>());
                UpdateRacialAbilityModifier(_intelligenceRacialModifier, characterRace.GetModifier <Intelligence>());
                UpdateRacialAbilityModifier(_wisdomRacialModifier, characterRace.GetModifier <Wisdom>());
                UpdateRacialAbilityModifier(_charismaRacialModifier, characterRace.GetModifier <Charisma>());
            }
        }
 public FeatChecker(StatBlockMessageWrapper _messageXML, MonSBSearch _monSBSearch, ClassMaster CharacterClasses, bool HasEnvirmonment,
                    RaceBase Race_Base, int IntAbilityScoreValue, int HDValue, List <FeatData> Feats, int BAB, int Int, int Str, int Cha, int Con, int Dex, int Wis, List <SkillCalculation> SkillCalculations)
 {
     this._messageXML          = _messageXML;
     this._monSBSearch         = _monSBSearch;
     this.CharacterClasses     = CharacterClasses;
     this.HasEnvirmonment      = HasEnvirmonment;
     this.Race_Base            = Race_Base;
     this.IntAbilityScoreValue = IntAbilityScoreValue;
     this.HDValue           = HDValue;
     this.Feats             = Feats;
     this.BAB               = BAB;
     this.Int               = Int;
     this.Str               = Str;
     this.Dex               = Dex;
     this.Con               = Con;
     this.Cha               = Cha;
     this.Wis               = Wis;
     this.SkillCalculations = SkillCalculations;
 }
示例#18
0
 public CombatManeuversChecker(StatBlockMessageWrapper _messageXML, MonSBSearch _monSBSearch, ClassMaster CharacterClasses, StatBlockInfo.SizeCategories SizeCat,
                               int SizeMod, int OnGoing, string BaseAtk, bool HasMonk, string CMBString, string formula, int TotalHD,
                               string AC_Mods, int DodgeBonus, string CMDString, RaceBase raceBase)
 {
     this._messageXML      = _messageXML;
     this._monSBSearch     = _monSBSearch;
     this.CharacterClasses = CharacterClasses;
     this.SizeCat          = SizeCat;
     this.BaseAtk          = BaseAtk;
     this.HasMonk          = HasMonk;
     this.CMBString        = CMBString;
     this.SizeMod          = SizeMod;
     this.OnGoing          = OnGoing;
     this.formulaOnGoing   = formula;
     this.TotalHD          = TotalHD;
     this.AC_Mods          = AC_Mods;
     this.DodgeBonus       = DodgeBonus;
     this.CMDString        = CMDString;
     Race_Base             = raceBase;
 }
示例#19
0
        /// <summary>
        /// Create Leader
        /// </summary>
        public NPCBase(IWorld grid, Gender gender, RaceBase race, Class.AgentClassBase @class, string name, int x, int y) : base(grid)
        {
            this.X      = x;
            this.Y      = y;
            this.Race   = race;
            this.Name   = name;
            this.Gender = gender;
            this.Class  = @class;


            this.Fire     = new FireStat(this);
            this.Water    = new WaterStat(this);
            this.Wind     = new WindStat(this);
            this.Earth    = new EarthStat(this);
            this.Chaos    = new ChaosStat(this);
            this.Order    = new Orderstat(this);
            this.Light    = new LightStat(this);
            this.Darkness = new DarkStat(this);

            this.Strenght     = new StrenghtStat(this);
            this.HP           = new HealthPointsStat(this);
            this.Constitution = new ConstitutuinStat(this);
            this.Stamina      = new StaminaStat(this);
            this.Awareness    = new AwarnessStat(this);
            this.Stealth      = new StealthStat(this);
            this.Speed        = new speedStat(this);
            this.Agility      = new AgilityStat(this);
            this.Dexterity    = new DexterityStat(this);


            //change later baced on race maybe?
            this.HP.MaxBase = 5;
            this.HP.Current = this.HP.Max;

            this.Stamina.MaxBase = 5;
            this.Stamina.Current = this.Stamina.Max;

            this.Awareness.MaxBase = 5;
            this.Awareness.Current = this.Awareness.Max;
        }
示例#20
0
 public void AddPartyMember(Gender gender, RaceBase race, Class.AgentClassBase @class, string name)
 {
     new NPCBase(gender, race, @class, name, this);
 }
示例#21
0
 public void Ressurect(RaceBase race)
 {
 }
示例#22
0
 public void Accelerate(RaceBase race)
 {
 }
示例#23
0
 public void Treat(RaceBase race)
 {
 }
示例#24
0
 public Player(IWorld grid, Gender gender, RaceBase race, Class.AgentClassBase @class, string name, int x, int y) : base(grid, gender, race, @class, name, x, y)
 {
     this.AI = null;
 }
示例#25
0
 public void Accelerate(RaceBase race)
 {
     race.ImpactForce = race.ImpactForce * 2;
     Console.WriteLine(race.GetType().Name.ToString() + ": Strong acceleration = " + race.ImpactForce.ToString());
 }