コード例 #1
0
        public string GenerateMonster(string name)
        {
            string message;

            if (monster != null && !monster.isDead())
            {
                message = $"There is already a {monster.name} here.";
            }
            else
            {
                var generateSuccessful = false;
                switch (name)
                {
                case "gremlin":
                    monster            = MonsterFactory.GenerateGremlin();
                    generateSuccessful = true;
                    break;
                }
                if (generateSuccessful)
                {
                    message = $"Generate successful. There is now a {monster.name} here.";
                }
                else
                {
                    message = "Generate unsuccessful. Try again.";
                }
            }
            return(message);
        }
コード例 #2
0
        public static string Defend(SimpleMonster monster)
        {
            int    damage;
            int    weaponDamage;
            string message = $"The {monster.name} misses you with its attack.";

            damage = DiceRoller.getDamage();
            if (damage > 0)
            {
                weaponDamage = damage * monster.getStrength();
                Game.Player.takeDamage(weaponDamage);
                message = $"The {monster.name} hit you for {weaponDamage} damage.";;
            }

            return(message);
        }
コード例 #3
0
        public static string Attack(SimpleMonster monster)
        {
            int    damage;
            int    weaponDamage;
            string message = $"You miss the {monster.name} with your attack.";

            damage = DiceRoller.getDamage();
            if (damage > 0)
            {
                weaponDamage = damage * Game.Player.getDamageModifier();
                List <DamageType> damageTypes = Game.Player.getDamageTypes();
                int damageDealt = monster.takeDamage(weaponDamage, damageTypes);
                message = $"You hit the {monster.name} for {damageDealt} damage.";
            }

            return(message);
        }
コード例 #4
0
        public override Monster Build(Level level, MonsterType monsterType = MonsterType.Normal)
        {
            var monster             = new SimpleMonster();
            var dropFactory         = DropService.Standard;
            var monsterStatsBalance = MonsterStatsBalance.Get(monsterType);

            monster.Level        = level.Normal;
            monster.Damage       = monsterStatsBalance.GetDefaultDPS(level.Normal);
            monster.Accuracy     = monsterStatsBalance.GetDefaultAccuracy(level.Normal);
            monster.Evasion      = monsterStatsBalance.GetDefaultEvasion(level.Normal);
            monster.MaxHealth    = monsterStatsBalance.GetDefaultHealth(level.Normal);
            monster.Health       = monster.MaxHealth;
            monster.DroppedItems = dropFactory.Build(level.Normal, monsterStatsBalance.GetDefaultDropValue(level.Normal));
            monster.MonsterType  = monsterType;

            monster.Skills.DefaultSkill = new AutoAttackSkill {
                Cooldown = 0.3, CastingTime = 0.7
            };

            if (monsterType == MonsterType.Boss && level.Normal > 50)
            {
                var skillsCount = 1;
                if (level.Normal > 80)
                {
                    skillsCount++;
                }
                if (level.Normal > 110)
                {
                    skillsCount++;
                }
                _possibleBossActiveSkills.TakeRandom(skillsCount)
                .ToList()
                .ForEach(s => monster.Skills.ActiveSkills.Add(s));
            }

            monster.SkillService  = new MonsterSkillController(monster, monster.Skills);
            monster.EffectService = new EffectService(monster, monster.Effects);

            return(monster);
        }
コード例 #5
0
 // Use this for initialization
 void Start()
 {
     currentPhase = CombatPhases.PLAYERMOVE;
     battleStarterScript = GameObject.FindGameObjectWithTag("BattleStarter").GetComponent<BattleStarterScript>();
     player = battleStarterScript.playerMonsters[0];
     opponent = battleStarterScript.opponent.monsters[0];
     playerHp.text = "HP: " + player.health;
     opponentHp.text = "HP: " + opponent.health;
     Instantiate(snake, new Vector3(4f, 2f, 0f), Quaternion.identity);
     Instantiate(bigSnake, new Vector3(-4f, -3f, 0f), bigSnake.transform.rotation);
 }
コード例 #6
0
 void Awake()
 {
     bStarter = battleStarter;
     staticNpcPrefab = npcPrefab;
     PlayerData data = DataScript.Load();
     Debug.Log(data.name);
     name = data.name;
     if(data.name.Equals("uninitialized")){
         items = new List<SimpleItem>();
         playersMonsters = new List<SimpleMonster>();
         SimpleMonster monster = new SimpleMonster();
         monster.name = "Snake";
         monster.level = 10;
         monster.totalExp = 10000;
         monster.moves = new List<SimpleMove>();
         monster.status = "OK";
         monster.type = "snake";
         monster.health = 100;
         monster.id = 1;
         SimpleMove move = new SimpleMove();
         move.name = "Bite";
         move.baseAttack = 10;
         move.accuracy = 95;
         move.id = 1;
         move.type = "snake";
         monster.moves.Add (move);
         playersMonsters.Add(monster);
         SimpleBattleNpc bNpc = new SimpleBattleNpc();
         bNpc.finishBattleText = "You suck!";
         bNpc.moneyGiven = 10;
         bNpc.monsters = new List<SimpleMonster>();
         monster = new SimpleMonster();
         monster.name = "Snake";
         monster.level = 10;
         monster.totalExp = 10000;
         monster.moves = new List<SimpleMove>();
         monster.status = "OK";
         monster.type = "snake";
         monster.health = 100;
         monster.id = 1;
         move = new SimpleMove();
         move.name = "Bite";
         move.baseAttack = 10;
         move.accuracy = 95;
         move.id = 1;
         move.type = "snake";
         monster.moves.Add (move);
         bNpc.monsters.Add(monster);
         bNpc.name = "Ben Call";
         bNpc.id = 1;
         bNpc.xPos = 3f;
         bNpc.yPos = 3f;
         simpleBattleNpcs = new List<SimpleBattleNpc>();
         simpleBattleNpcs.Add(bNpc);
         SimpleItem item = new SimpleItem();
         item.buyCost = 100;
         item.name = "Potion";
         item.sellCost = 50;
         items.Add(item);
         SimpleNPC npc = new SimpleNPC();
         npc.name = "Ben Smith";
         npc.conversationText = "Felgergarb";
         npc.xPos = 1.0f;
         npc.yPos = 10.0f;
         simpleNPCs = new List<SimpleNPC>();
         simpleNPCs.Add(npc);
         money = 100;
         playerStartPosX = 0f;
         playerStartPosY = 0f;
         data.name = "Joseph";
         data.items = items;
         data.simpleNpcs = simpleNPCs;
         DataScript.Save (data);
     }
     Debug.Log (data.money);
     foreach(SimpleItem item in data.items){
         Debug.Log (item.name);
     }
     foreach(SimpleNPC npc in data.simpleNpcs){
         Debug.Log (npc.name);
     }
     data.name = "uninitialized";
     DataScript.Save (data);
 }