예제 #1
0
        public static Character.Iactor CreateCharacter(CharacterEnums.CharacterType characterType, int MobTypeID = 0)
        {
            Character.Iactor character = null;

            switch (characterType)
            {
            case CharacterType.NPC:
                if (MobTypeID != 0)
                {
                    character = CreateNPCCharacter(MobTypeID);
                }
                else
                {
                    character = CreateNPCCharacterHusk();
                }
                break;

            case CharacterType.PLAYER:
                character = new Character.Character();
                break;

            default: character = null;
                break;
            }

            return(character);
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing Systems...");
            // TODO: create inventory system

            Console.WriteLine("Initializing Character Manager");
            Character.Character player;

            // load the character
            player = PersistentData.PersistentData.Deserialize <Character.Character>("player.xml");
            if (player == null)
            {
                Console.WriteLine("No player found, creating new default character");
                player = new Character.Character(100, Races.Elf, Alignments.Neutral);
            }

            CharacterManager characterManager = CharacterManager.Instance;

            characterManager.Player = player;
            Character.Character enemyOne = new Character.Character(50, Races.Orc, Alignments.ChaoticEvil);
            Character.Character enemyTwo = new Character.Character(50, Races.Orc, Alignments.NeutralEvil);
            characterManager.AddEnemy(enemyOne);
            characterManager.AddEnemy(enemyTwo);

            // TODO: create persistent data system

            // save the player
            Console.WriteLine("Saving player");
            PersistentData.PersistentData.Serialize <Character.Character>(player, "character.xml");

            Console.WriteLine("Press return to exit...");
            Console.ReadKey();
        }
예제 #3
0
        private void RemoveBonus(Character.Character c, BonusSpell.BONUS_TYPE bonusType, int bonusValue)
        {
            switch (bonusType)
            {
            case BonusSpell.BONUS_TYPE.Health:
                c.CurLife -= bonusValue;
                break;

            case BonusSpell.BONUS_TYPE.Mana:
                c.CurMana -= bonusValue;
                break;

            case BonusSpell.BONUS_TYPE.Strength:
                c.Strength -= bonusValue;
                c.RecalculateCharacterStats();
                break;

            case BonusSpell.BONUS_TYPE.Constitution:
                c.Constitution -= bonusValue;
                c.RecalculateCharacterStats();
                break;

            case BonusSpell.BONUS_TYPE.AtkSpeed:
                c.AttackSpeed -= bonusValue;
                break;

            default:
                break;
            }
        }
예제 #4
0
        private IEnumerator TemporaryBonusEffect(Character.Character c, BonusSpell spell)
        {
            ApplyBonus(c, spell.bonusType, spell.bonusValue);
            yield return(new WaitForSeconds(spell.duration));

            RemoveBonus(c, spell.bonusType, spell.bonusValue);
        }
예제 #5
0
        public void AddAlteration(int _strenght, int _constitution, int _intelligence, int _dexterity, float _time,
                                  Character.Character character)
        {
            GameObject alteration;

            if (_strenght > 0)
            {
                alteration = CreateAlteration(_strenght, 0, 0, 0, _time, character);
                alteration.transform.parent = strenghtPotions.transform;
            }
            if (_constitution > 0)
            {
                alteration = CreateAlteration(0, _constitution, 0, 0, _time, character);
                alteration.transform.parent = constitutionPotions.transform;
            }
            if (_intelligence > 0)
            {
                alteration = CreateAlteration(0, 0, _intelligence, 0, _time, character);
                alteration.transform.parent = intelligencePotions.transform;
            }
            if (_dexterity > 0)
            {
                alteration = CreateAlteration(0, 0, 0, _dexterity, _time, character);
                alteration.transform.parent = dexterityPotions.transform;
            }
        }
예제 #6
0
    public void Launch(Character.Character character, Vector3 dir)
    {
        transform.forward = dir;
        transform.RotateAround(transform.position, character.transform.right, 90f);

        direction   = dir;
        thrower     = character;
        weaponState = THROWINGWEAPONSTATES.Launch;
    }
예제 #7
0
 private void OnCollisionEnter(Collision collision)
 {
     Character.Character target = collision.gameObject.GetComponent <Character.Character>();
     if (target != null)
     {
         target.UndergoAttack(spell.damage, FindObjectOfType <Player>());
     }
     OnEndOfLife();
 }
예제 #8
0
        public GameObject CreateAlteration(int _strenght, int _constitution, int _intelligence, int _dexterity,
                                           float _time,
                                           Character.Character character)
        {
            GameObject alteration = Instantiate(alterationPrefab);

            alteration.GetComponent <Alteration>().Init(_strenght, _constitution, _intelligence, _dexterity, _time,
                                                        character);

            return(alteration);
        }
예제 #9
0
        public void AddEnemyTest()
        {
            CharacterManager characterManager = CharacterManager.Instance;

            Character.Character enemyOne = new Character.Character(50, Races.Orc, Alignments.ChaoticEvil);
            Character.Character enemyTwo = new Character.Character(50, Races.Orc, Alignments.NeutralEvil);
            characterManager.AddNPC(enemyOne);
            characterManager.AddNPC(enemyTwo);

            characterManager.RemoveNPC(enemyTwo);
            Assert.IsTrue(characterManager.GetNPCListSizeTest() == 1);
        }
예제 #10
0
        public static void SavePlayer(Character.Character character, PlayerController playerController)
        {
            var formatter = new BinaryFormatter();
            var path      = Application.persistentDataPath + "/playerStats.fun";

            var stream = new FileStream(path, FileMode.Create);

            var data = new PlayerData(character, playerController);

            formatter.Serialize(stream, data);
            stream.Close();
        }
예제 #11
0
        private void BonusSpellEffect(BonusSpell spell)
        {
            Character.Character charac = FindObjectOfType <Character.Character>();

            if (spell.isPermanent)
            {
                ApplyBonus(charac, spell.bonusType, spell.bonusValue);
            }
            else
            {
                TemporaryBonusEffect(charac, spell);
            }
        }
예제 #12
0
        public override void Cast(Character character, float mouseX, float mouseY)
        {
            if (character.Stats.Mana >= this.ManaCost)
            {
                character.DecreaseMana(this.ManaCost);

                var rad = Math.Atan2(
                    mouseY - character.BoundingBox.Top,
                    mouseX - character.BoundingBox.Left);
                var deltaX = (float)Math.Cos(rad);
                var deltaY = (float)Math.Sin(rad);
                Sprite projSprite = new Sprite(new Texture(this.Directory)) { Rotation = (float)(rad * 180 / Math.PI) };
                Projectile projectile = new Projectile(new SpriteSheet(projSprite), character.BoundingBox.Left, character.BoundingBox.Top - 10, deltaX, deltaY, Program.MovementModifier);
            }
        }
예제 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing Systems...");
            // TODO: create inventory system
            Inventory.Inventory mInv = new Inventory.Inventory(10);
            mInv.Add(new Item("Dai-Ryumyaku Jufuku of Fending", 1, ItemType.equipment));
            mInv.Add(new Item("Max Potion", 1, ItemType.consumable));
            mInv.Add(new Item("Max Ether", 1, ItemType.consumable));
            mInv.Add(new Item("Diamond Sword", 1, ItemType.equipment));
            mInv.Add(new Item("Diamond Shield", 1, ItemType.equipment));
            mInv.Add(new Item("Silvergrace Earrings of Fending", 1, ItemType.equipment));
            mInv.Add(new Item("Aether Compass", 1, ItemType.key));
            mInv.Add(new Item("Empty Dalmascan Wine Bottle", 1, ItemType.key));
            mInv.Add(new Item("Pazuzu Feather", 1, ItemType.key));

            mInv.PrintInventory();

            Console.WriteLine("Initializing Character Manager");
            Character.Character player;

            // load the character
            player = PersistentData.PersistentData.Deserialize <Character.Character>("player.xml");
            if (player == null)
            {
                Console.WriteLine("No player found, creating new default character");
                player = new Character.Character(100, Race.Elf, Alignment.Neutral);
            }


            CharacterManager characterManager = CharacterManager.Instance;

            characterManager.Player = player;
            Character.Character enemyOne = new Character.Character(50, Race.Orc, Alignment.ChaoticEvil);
            Character.Character enemyTwo = new Character.Character(50, Race.Orc, Alignment.NeutralEvil);
            characterManager.AddEnemy(enemyOne);
            characterManager.AddEnemy(enemyTwo);


            // TODO: create persistent data system

            // save the player
            Console.WriteLine("Saving players and Enemys");
            PersistentData.PersistentData.Serialize <CharacterManager>(characterManager, "character.xml");


            Console.WriteLine("Press return to exit...");
            Console.ReadKey();
        }
예제 #14
0
 private void OnCollisionEnter(Collision collision)
 {
     if (weaponState == THROWINGWEAPONSTATES.Launch)
     {
         if (collision.gameObject.layer == LayerMask.NameToLayer("Character") &&
             collision.gameObject.name != thrower.name)
         {
             Character.Character touchedCharac = collision.gameObject.GetComponent <Character.Character>();
             touchedCharac.UndergoAttack(thrower.MakeDamage(), thrower);
         }
         else if (collision.gameObject.tag == "Wall")
         {
             Destroy(gameObject);
         }
     }
 }
예제 #15
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing Systems...");

            // Creates an inventory and items
            Console.WriteLine("Initializing Inventory...");
            Inventory.Inventory inventory = new Inventory.Inventory(10);
            Item sword  = new Item("Sword", 3, ItemType.equipment);
            Item potion = new Item("Potion", 2, ItemType.consumable);
            Item map    = new Item("Map", 0, ItemType.key);

            // adds items into inventory
            Console.WriteLine("Filling Inventory...");
            inventory.Add(sword);
            inventory.Add(potion);
            inventory.Add(map);

            Console.WriteLine("Initializing Character Manager");
            Character.Character player;

            // load the character
            player = PersistentData.PersistentData.Deserialize <Character.Character>("player.xml");
            if (player == null)
            {
                Console.WriteLine("No player found, creating new default character");
                player = new Character.Character(100, Races.Elf, Alignments.Neutral);
            }

            CharacterManager characterManager = CharacterManager.Instance;

            characterManager.Player = player;
            Character.Character enemyOne = new Character.Character(50, Races.Orc, Alignments.ChaoticEvil);
            Character.Character enemyTwo = new Character.Character(50, Races.Orc, Alignments.NeutralEvil);
            characterManager.AddEnemy(enemyOne);
            characterManager.AddEnemy(enemyTwo);

            // TODO: create persistent data system

            // save the player
            Console.WriteLine("Saving player");
            PersistentData.PersistentData.Serialize <Character.Character>(player, "character.xml");

            Console.WriteLine("Press return to exit...");
            Console.ReadKey();
        }
예제 #16
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing Systems...");
            // TODO: create inventory system
            Inventory.Inventory inventory = new Inventory.Inventory(5);

            Item item  = new Item("A", 1, ItemType.consumable);
            Item item2 = new Item("B", 2, ItemType.consumable);
            Item item3 = new Item("C", 3, ItemType.consumable);
            Item item4 = new Item("D", 4, ItemType.consumable);

            inventory.Add(item);
            inventory.Add(item2);
            inventory.Add(item3);
            inventory.Add(item4);

            Console.WriteLine("Initializing Character Manager");
            Character.Character player;

            // load the character
            player = PersistentData.PersistentData.Deserialize <Character.Character>("player.xml");
            if (player == null)
            {
                Console.WriteLine("No player found, creating new default character");
                player = new Character.Character(100, Races.Elf, Alignments.Neutral);
            }

            CharacterManager characterManager = CharacterManager.Instance;

            characterManager.Player = player;
            Character.Character enemyOne = new Character.Character(50, Races.Orc, Alignments.ChaoticEvil, "1", "masculine");
            Character.Character enemyTwo = new Character.Character(50, Races.Orc, Alignments.NeutralEvil, "2", "masculine");
            characterManager.AddEnemy(enemyOne);
            characterManager.AddEnemy(enemyTwo);

            // TODO: create persistent data system

            // save the player
            Console.WriteLine("Saving player");
            PersistentData.PersistentData.Serialize <Character.Character>(player, "character.xml");

            Console.WriteLine("Press return to exit...");
            Console.ReadKey();
        }
예제 #17
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing Systems...");
            // TODO: create inventory system

            Console.WriteLine("Initializing Character Manager");
            Character.Character player           = new Character.Character(100, Race.Elf, Alignment.Neutral);
            CharacterManager    characterManager = CharacterManager.Instance;

            characterManager.Player = player;
            Character.Character enemyOne = new Character.Character(50, Race.Orc, Alignment.ChaoticEvil);
            Character.Character enemyTwo = new Character.Character(50, Race.Orc, Alignment.NeutralEvil);
            characterManager.AddEnemy(enemyOne);
            characterManager.AddEnemy(enemyTwo);

            // TODO: create persistent data system

            Console.ReadKey();
        }
예제 #18
0
        public static Character.Iactor CreateCharacter(CharacterEnums.CharacterType characterType, int MobTypeID = 0)
        {
            Character.Iactor character = null;

            switch (characterType) {
                case CharacterType.NPC:
                    if (MobTypeID != 0) {
                        character = CreateNPCCharacter(MobTypeID);
                    }
                    else {
                        character = CreateNPCCharacterHusk();
                    }
                    break;
                case CharacterType.PLAYER:
                    character = new Character.Character();
                    break;
                default: character = null;
                    break;
            }

            return character;
        }
예제 #19
0
    // Update is called once per frame

    private void Awake()
    {
        enemy = GetComponent <Character.Character>();
    }
예제 #20
0
        private Character charac; // parent of the attack zone

        private void Awake()
        {
            charac = transform.parent.GetComponent <Character>();
        }
예제 #21
0
 public abstract void Cast(Character character, float x, float y);
예제 #22
0
 public void RestoreHealthTest()
 {
     Character.Character player = new Character.Character(100, Races.Elf, Alignments.Neutral);
     player.RestoreHealth(10);
     Assert.IsTrue(player.GetHealth() == 110);
 }
예제 #23
0
 public void TakeDamageTest()
 {
     Character.Character player = new Character.Character(100, Races.Elf, Alignments.Neutral);
     player.TakeDamage(10);
     Assert.IsTrue(player.GetHealth() == 90);
 }
예제 #24
0
 public virtual void Learn(Character character)
 {
     if (character.UnlockedTiers.Contains(this.tier) && !character.UnlockedSkills.Contains(this))
     {
         character.UnlockedSkills.Add(this);
     }
 }
예제 #25
0
파일: Character.cs 프로젝트: jandar78/Novus
        /// <summary>
        /// Deep copy constructor
        /// </summary>
        /// <param name="copy"></param>
        public Character(Character copy) { //copy constructor
            Class = copy.Class;
            Race = copy.Race;
            Gender = copy.Gender;
            SkinColor = copy.SkinColor;
            SkinType = copy.SkinType;
            HairColor = copy.HairColor;
            EyeColor = copy.EyeColor;
            Build = copy.Build;
            _koCount = new Tuple<int, DateTime>(0, DateTime.Now);
            _actionState = CharacterActionState.None;
            _stanceState = CharacterStanceState.Standing;

            _primaryLanguage = copy._primaryLanguage;
            KnownLanguages = new HashSet<Languages>();
            foreach (Languages lang in copy.KnownLanguages) {
                KnownLanguages.Add(lang);
            }

            FirstName = copy.FirstName;
            LastName = copy.LastName;
            Description = copy.Description;
            Age = copy.Age;   //Do we want an age? And are we going to advance it every in game year?  Players could be 400+ years old rather quick.
            Weight = copy.Weight; //pounds or kilos?
            Height = copy.Height;  //inches or centimeters?
            Location = "A1000";
            InCombat = false;
            LastCombatTime = DateTime.MinValue.ToUniversalTime();
            IsNPC = false;
            Leveled = false;
            NextLevelExperience = 300;
            Level = 1;
            Experience = 0;
            PointsToSpend = 0;
            MainHand = "WIELD_RIGHT";


            Attributes = new List<Attribute>();

            foreach (var attrib in copy.Attributes){
                Attributes.Add(attrib);
            }
            
            SubAttributes = new Dictionary<string, double>();

            foreach (KeyValuePair<string, double> subAttrib in copy.SubAttributes) {
                SubAttributes.Add(subAttrib.Key, subAttrib.Value);
            }

            Inventory = new Inventory();


            this.Save();
        }
예제 #26
0
 public void CreatCharacter()
 {
     Character.Character player = new Character.Character(100, Race.Elf, Alignment.Neutral);
     Assert.NotNull(player);
 }