Example #1
0
 public void SetOverworldSpell(TargetingMenu menu, Canvas canvas, StatsBase caster)
 {
     targetingMenu   = menu;
     targetingCanvas = canvas;
     overworldSpell  = true;
     spellCaster     = caster;
 }
Example #2
0
    public override void GetCommand()
    {
        base.GetCommand();

        target = CombatManager.instance.playerTeam[Random.Range(0, CombatManager.instance.playerTeam.Count)];

        if (spellList.Count > 0 && Random.Range(0f, 1f) <= chanceToUseSpell)
        {
            Spell spellToCast = spellList[Random.Range(0, spellList.Count)];
            if (spellToCast.spellType == SpellType.Heal)
            {
                target = CombatManager.instance.enemyTeam[Random.Range(0, CombatManager.instance.enemyTeam.Count)];
            }
            CastSpell(target, spellToCast);
        }

        else if (Random.Range(0f, 1f) <= blockChance)
        {
            Defend();
        }

        else
        {
            Attack(target);
        }
    }
        /// <summary>
        /// XD
        /// </summary>
        /// <param name="dataList"></param>
        /// <returns></returns>
        private LJVStatsDatum StatsDatumFromFullLJVList(List <FullLJVDatum> dataList)
        {
            LJVStatsDatum statsDatum       = new LJVStatsDatum();
            List <double> currentDensities = new List <double>();
            List <double> resistances      = new List <double>();
            List <double> photoCurrents    = new List <double>();
            List <double> luminances       = new List <double>();
            List <double> currentEffs      = new List <double>();
            List <double> powerEffs        = new List <double>();
            List <double> EQEs             = new List <double>();
            List <double> CIExs            = new List <double>();
            List <double> CIEys            = new List <double>();

            foreach (FullLJVDatum fd in dataList)
            {
                currentDensities.Add(Convert.ToDouble(fd.CurrentDensity));
                //Debug.WriteLine("currentDensity = " + fd.CurrentDensity);
                resistances.Add(Convert.ToDouble(fd.Resistance));
                photoCurrents.Add(Convert.ToDouble((fd.PhotoCurrentA + fd.PhotoCurrentB) / 2.0m));
                luminances.Add(Convert.ToDouble(fd.Luminance));
                currentEffs.Add(Convert.ToDouble(fd.CurrentEff));
                powerEffs.Add(Convert.ToDouble(fd.PowerEff));
                EQEs.Add(Convert.ToDouble(fd.EQE));
                CIExs.Add(Convert.ToDouble(fd.CameraCIEx));
                CIEys.Add(Convert.ToDouble(fd.CameraCIEy));
            }
            statsDatum.Voltage = dataList.First().Voltage;
            StatsBase calculator = new StatsBase();

            calculator.PopulateStatsFromArrayAndRound(currentDensities.ToArray(), 13);
            statsDatum.MeanCurrentDensity   = Convert.ToDecimal(calculator.Mean);
            statsDatum.CurrentDensityStdDev = Convert.ToDecimal(calculator.StdDev);
            //Debug.WriteLine("statsDatum.MeanCurrentDensity = " + statsDatum.MeanCurrentDensity);
            //Debug.WriteLine("statsDatum.CurrentDensityStdDev = " + statsDatum.CurrentDensityStdDev);
            calculator.PopulateStatsFromArrayAndRound(resistances.ToArray(), 13);
            statsDatum.MeanResistance   = Convert.ToDecimal(calculator.Mean);
            statsDatum.ResistanceStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(photoCurrents.ToArray(), 13);
            statsDatum.MeanPhotoCurrent   = Convert.ToDecimal(calculator.Mean);
            statsDatum.PhotoCurrentStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(luminances.ToArray(), 13);
            statsDatum.MeanLuminance   = Convert.ToDecimal(calculator.Mean);
            statsDatum.LuminanceStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(currentEffs.ToArray(), 13);
            statsDatum.MeanCurrentEff   = Convert.ToDecimal(calculator.Mean);
            statsDatum.CurrentEffStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(powerEffs.ToArray(), 13);
            statsDatum.MeanPowerEff   = Convert.ToDecimal(calculator.Mean);
            statsDatum.PowerEffStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(EQEs.ToArray(), 13);
            statsDatum.MeanEQE   = Convert.ToDecimal(calculator.Mean);
            statsDatum.EQEStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(CIExs.ToArray(), 13);
            statsDatum.MeanCameraCIEx   = Convert.ToDecimal(calculator.Mean);
            statsDatum.CameraCIExStdDev = Convert.ToDecimal(calculator.StdDev);
            calculator.PopulateStatsFromArrayAndRound(CIEys.ToArray(), 13);
            statsDatum.MeanCameraCIEy   = Convert.ToDecimal(calculator.Mean);
            statsDatum.CameraCIEyStdDev = Convert.ToDecimal(calculator.StdDev);
            return(statsDatum);
        }
Example #4
0
        /// <summary>
        /// Ensures index exist for the collection that keeps the data for an object
        /// </summary>
        /// <param name="col"></param>
        private void EnsureIndex(StatsBase s)
        {
            //get collection
            var col = this.mongocollections[s.GetCollectionName()];

            col.CreateIndex(s.GetIndexedKeys(), MongoDB.Driver.Builders.IndexOptions.SetUnique(true).SetDropDups(true).SetBackground(true));
        }
Example #5
0
 public override void Attack(StatsBase target, int damage)
 {
     base.Attack(target, damage);
     if (weapon.id != 0 && !weapon.appraised)
     {
         InventoryManager.Instance.AppraiseItem(weapon.id);
     }
 }
Example #6
0
    IEnumerator AttackDelay(StatsBase attacker, StatsBase target, int damage, bool ignoreDefence)
    {
        messageText.text += string.Format("{0} attacks!\n", attacker.characterName);
        AudioPlayer.Instance.Attack();
        yield return(new WaitForSeconds(timeToWait));

        Attack(attacker, target, damage, ignoreDefence, false, true);
    }
Example #7
0
 public void CastSpell(StatsBase target, Spell spell)
 {
     if (!spell.attackAll)
     {
         CombatManager.instance.SpellAttack(this, target, spell);
     }
     else
     {
         CombatManager.instance.SpellAttackAll(this, spell);
     }
 }
Example #8
0
    public virtual void Attack(StatsBase target, int damage)
    {
        bool isCrit = false;

        if (Random.Range(0f, 1f) <= critChance)
        {
            isCrit = true;
        }

        CombatManager.instance.StartAttack(this, target, damage, isCrit);
    }
Example #9
0
    public void Heal(StatsBase healer, StatsBase target, int amount, bool dontContinueAfterAttack)
    {
        target.Heal(amount);

        messageText.text += string.Format("{0} heals {1} health.", target.characterName, amount);
        AudioPlayer.Instance.HealSpell();

        if (!dontContinueAfterAttack)
        {
            StartCoroutine(NextTurnWait());
        }
    }
Example #10
0
 // Update is called once per frame
 public void UpdateStats(StatsBase _stats)
 {
     if (isPlayer)
     {
         if (_stats.EXP >= _stats.MaxEXP)
         {
             _stats.EXP -= _stats.MaxEXP;
             ++_stats.Level;
             CalculateStats(_stats);
         }
     }
 }
Example #11
0
 public void RefreshData()    //刷新装备数据
 {
     TotalEquips = new StatsBase();
     foreach (Equip equip in onwear)
     {
         if (equip != null)
         {
             TotalEquips.Add(equip.MFProperties);
             TotalEquips.Add(equip.PProperties);
         }
     }
 }
Example #12
0
 public void SetTarget(int index, bool targetAllies)
 {
     if (!targetAllies)
     {
         target = CombatManager.instance.enemyTeam[index];
     }
     else
     {
         target = CombatManager.instance.allAllies[index];
     }
     ExecuteCommand();
 }
Example #13
0
        public Equipment()
        {
            TotalEquips = new StatsBase();
            onwear      = new Equip[6];
            // ReSharper disable once NotAccessedVariable

            /*for (int i = 0; i < 6; i++)
             * {
             *  onwear[i] = new Equip();
             * }*/
            CenterControl.Centerctrl.RegisterData(this);
        }
Example #14
0
 void DamagePlayer(StatsBase target)
 {
     if (target == null)
     {
         Debug.Log("UHHH TARGET HAS NO STATS!");
     }
     else
     {
         Vector2 LaunchDirection = GlobalVar.KnockbackForce * KnockbackMod * Mathf.Sign(transform.position.x - target.transform.position.x);
         target.GetHit(DamageAmount, Launch, LaunchDirection);
         Debug.Log("HONKADOOK CHECK THIS BOOT");
     }
 }
Example #15
0
    public void NextTurn()
    {
        DisableCommandCanvas();

        if (!battleEnded)
        {
            messageText.text = "";

            if (enemyTeam.Count > 0 && playerTeam.Count > 0)
            {
                turnIndex = (turnIndex + 1) % (allAllies.Count + allEnemies.Count);

                if (turnIndex < turnOrder.Count && !turnOrder[turnIndex].isDead)
                {
                    currentActor = turnOrder[turnIndex];

                    if (statsPanels.Keys.Contains <StatsBase>(currentActor))
                    {
                        statsPanels[currentActor].ToggleIndicator();
                    }

                    currentActor.GetCommand();
                }
                else
                {
                    NextTurn();
                }
            }
            else if (enemyTeam.Count <= 0)
            {
                messageText.text += ("Victory!\n");
                AudioManager.Instance.SilenceAllBGM();
                AudioPlayer.Instance.VictoryFanfare();
                battleEnded = true;
                StartCoroutine(NextTurnWait());
            }
            else if (playerTeam.Count <= 0)
            {
                messageText.text += ("The party are wiped out!\n");
                AudioManager.Instance.SilenceAllBGM();
                AudioPlayer.Instance.GameOver();
                battleEnded = true;
                gameOver    = true;
                StartCoroutine(NextTurnWait());
            }
        }
        else
        {
            StartCoroutine(EndBattle(true));
        }
    }
Example #16
0
    public void Attack(StatsBase attacker, StatsBase target, int damage, bool ignoreDefence, bool lifesteal, bool showAnimation, bool dontAdvanceAfterAttack)
    {
        int damageTaken = target.TakeDamage(damage, ignoreDefence);

        if (damageTaken > 0)
        {
            if (ignoreDefence)
            {
                messageText.text += "Critical hit!\n";
            }
            if (!lifesteal)
            {
                messageText.text += string.Format("{0} takes {1} damage.", target.characterName, damageTaken);
                if (showAnimation)
                {
                    AudioPlayer.Instance.TakeDamage();
                }
            }
            else
            {
                attacker.Heal(damageTaken);
                messageText.text += string.Format("Absorbs {0} HP from {1}!", damageTaken, target.characterName);
                AudioPlayer.Instance.HealSpell();
            }

            if (target.isEnemy && showAnimation)
            {
                spriteManager.PlayMeleeEffect(allEnemies.IndexOf((EnemyStats)target));
                if (target.currentHP > 0)
                {
                    spriteManager.FlickerSprite(allEnemies.IndexOf((EnemyStats)target));
                }
            }
        }
        else
        {
            messageText.text += string.Format("{0} blocks the attack.", target.characterName);
            AudioPlayer.Instance.Block();
        }

        if (target.isDead)
        {
            messageText.text += string.Format("\n{0} dies!", target.characterName);
        }

        if (!dontAdvanceAfterAttack)
        {
            StartCoroutine(NextTurnWait());
        }
    }
Example #17
0
    // Use this for initialization
    public void Init(StatsBase _stats, bool _isPlayer = false)
    {
        isPlayer = _isPlayer;

        if (_isPlayer)
        {
            if (!LoadStats()) // Check Loadable stats
            {
                CalculateStats(_stats);
            }
        }
        else
        {
            CalculateStats(_stats);
        }
    }
Example #18
0
 private void SwitchToTargeting(bool targetAllies)
 {
     if (commandType == CommandType.Spell && currentSpell.attackAll)
     {
         target = CombatManager.instance.enemyTeam[0];
         ExecuteCommand();
     }
     else
     {
         commandCanvas.enabled   = false;
         targetingCanvas.enabled = true;
         spellCanvas.enabled     = false;
         itemCanvas.enabled      = false;
         targetingMenu.InitialiseTargetList(targetAllies);
     }
 }
Example #19
0
        public void SearchJsonStrong_themObjectCastSuccess()
        {
            //arrange
            IFacadeJsonUtility jsonUtility = new FacadeJsonUtility();
            StatsBaseJson      statBase    = new StatsBaseJson();

            statBase.Name = "nombre";
            statBase.Life = 20;
            string jsonString = jsonUtility.ToJson(statBase);

            //Act
            StatsBase result = new StatsBase(jsonUtility.FromJson <StatsBaseJson>(jsonString));

            //assert
            Assert.AreEqual(statBase.Name, result.Name, "The conversion is not work");
            Assert.AreEqual(statBase.Life, result.Life, "The conversion is not work");
        }
Example #20
0
    IEnumerator SpellDelay(StatsBase attacker, StatsBase target, Spell spell)
    {
        messageText.text += string.Format("{0} casts {1}!\n", attacker.characterName, spell.name);
        AudioPlayer.Instance.CastSpell();
        yield return(new WaitForSeconds(timeToWait));

        if (attacker.currentMP >= spell.manaCost)
        {
            attacker.currentMP -= spell.manaCost;
            UseSpell(attacker, target, spell, false);
        }
        else
        {
            messageText.text += "Not enough MP!";
            StartCoroutine(NextTurnWait());
        }
    }
Example #21
0
    private void UseSpell(StatsBase attacker, StatsBase target, Spell spell, bool dontContinueAfterAttack)
    {
        switch (spell.spellType)
        {
        case SpellType.None:
            messageText.text += "Nothing happens!";
            StartCoroutine(NextTurnWait());
            break;

        case SpellType.Damage:
            Attack(attacker, target, spell.primaryStatValue + attacker.currentINT, false, spell.lifesteal, false, dontContinueAfterAttack);

            AudioPlayer.Instance.DamageSpell();

            if (target.isEnemy)
            {
                spriteManager.PlayMagicEffect(allEnemies.IndexOf((EnemyStats)target));
                if (target.currentHP > 0)
                {
                    spriteManager.FlickerSprite(allEnemies.IndexOf((EnemyStats)target));
                }
            }
            break;

        case SpellType.Physical:
            Attack(attacker, target, spell.primaryStatValue + attacker.currentATK, false, spell.lifesteal, true, dontContinueAfterAttack);
            break;

        case SpellType.Heal:
            if (!target.isDead)
            {
                Heal(attacker, target, spell.primaryStatValue + attacker.currentINT, dontContinueAfterAttack);
            }
            else
            {
                messageText.text += string.Format("But {0} is dead!", target.characterName);
            }
            break;
        }
        if (spell.id != 0 && !spell.appraised)
        {
            SpellInventory.Instance.AppraiseSpell(spell.id);
        }
    }
Example #22
0
    IEnumerator SpellDelayAll(StatsBase attacker, Spell spell)
    {
        messageText.text += string.Format("{0} casts {1}!\n", attacker.characterName, spell.name);
        AudioPlayer.Instance.CastSpell();
        if (attacker.currentMP >= spell.manaCost)
        {
            List <StatsBase> targets = new List <StatsBase>();
            if ((!attacker.isEnemy && spell.spellType != SpellType.Heal) || (attacker.isEnemy && spell.spellType == SpellType.Heal))
            {
                foreach (StatsBase stats in enemyTeam)
                {
                    targets.Add(stats);
                }
            }
            else
            {
                foreach (StatsBase stats in playerTeam)
                {
                    targets.Add(stats);
                }
            }
            foreach (StatsBase target in targets)
            {
                yield return(new WaitForSeconds(timeToWait));

                messageText.text    = "";
                attacker.currentMP -= spell.manaCost;
                UseSpell(attacker, target, spell, true);
                spriteManager.UpdateSprites(allEnemies);
                UpdateAllStats();
            }

            StartCoroutine(NextTurnWait());
        }
        else
        {
            yield return(new WaitForSeconds(timeToWait));

            messageText.text += "Not enough MP!";
            StartCoroutine(NextTurnWait());
        }
    }
Example #23
0
        IEnumerator BuffRefresh()
        {
            while (true)
            {
                TotalBuff = new StatsBase();

                foreach (Buff buff in Bufflist)
                {
                    TotalBuff.Add(buff.EffectStats);


                    buff.EffectTime--;
                    if (buff.EffectTime <= 0)
                    {
                        Bufflist.Remove(buff);
                    }
                }
                yield return(new WaitForSeconds(1f));
            }
        }
Example #24
0
    private void CalculateStats(StatsBase _stats)
    {
        _stats.MaxEXP     = _stats.Level * MaxEXPScaling;
        _stats.MaxHealth  = _stats.Level * HealthScaling;
        _stats.MaxStamina = _stats.Level * StaminaScaling;
        _stats.Attack     = _stats.Level * AttackScaling;
        _stats.Defense    = _stats.Level * DefenseScaling;
        _stats.Health     = _stats.MaxHealth;
        _stats.Stamina    = _stats.MaxStamina;

        //Debug.Log("Name : " + m_Stats.Name);
        //Debug.Log("Level : " + _stats.Level);
        //Debug.Log("EXP : " + _stats.EXP);
        //Debug.Log("Max EXP : " + _stats.MaxEXP);
        //Debug.Log("HP : " + m_Stats.Health);
        //Debug.Log("Max HP : " + _stats.MaxHealth);
        //Debug.Log("Stamina : " + m_Stats.Stamina);
        //Debug.Log("Max Stamina : " + m_Stats.MaxStamina);
        //Debug.Log("Attack : " + m_Stats.Attack);
        //Debug.Log("Defense : " + m_Stats.Defense);
    }
Example #25
0
    IEnumerator ItemDelay(StatsBase attacker, StatsBase target, Item item)
    {
        messageText.text += string.Format("{0} uses {1}!\n", attacker.characterName, item.name);
        yield return(new WaitForSeconds(timeToWait));

        switch (item.spellType)
        {
        case SpellType.None:
            messageText.text += "You can't use this!";
            StartCoroutine(NextTurnWait());
            break;

        case SpellType.Damage:
            Attack(attacker, target, item.primaryStatValue, true, false, false);

            if (target.isEnemy)
            {
                spriteManager.PlayMagicEffect(allEnemies.IndexOf((EnemyStats)target));
                if (target.currentHP > 0)
                {
                    spriteManager.FlickerSprite(allEnemies.IndexOf((EnemyStats)target));
                }
            }
            break;

        case SpellType.Physical:
            Attack(attacker, target, item.primaryStatValue, true, false, false);
            break;

        case SpellType.Heal:
            Heal(attacker, target, item.primaryStatValue);
            break;
        }
        if (item.type == ItemType.Consumable)
        {
            // Decrease quantity
            InventoryManager.Instance.RemoveItem(item.id);
        }
    }
Example #26
0
        protected PartBase(PartRecord partRecord, Unit owner)
        {
            // For null weapon
            if (partRecord == null)
            {
                return;
            }

            // Load stats for part
            Stats = PooReader.GetStatsByTemplateId(partRecord.TemplateId);

            // Set color
            Color = partRecord.Color;

            // Set owner
            Owner = owner;

            // Set the Id
            Id = partRecord.Id;

            // TODO: Any other info we need
        }
Example #27
0
        private void Start()
        {
            PlayerStats       = new StatsBase();
            PlayerLevel       = new LevelData();
            ItemEnternalStats = new List <StatsBase>();
            BaseStats         = new StatsBase();


            PlayerEquipment = new Equipment();
            Bufflist        = new List <Buff>();

            TotalStats     = new StatsBase();
            TotalIntime    = new StatsIntime();
            TotalItemStats = new StatsBase();

            TotalIntime.HpI = 50;
            PlayerStats.HpM = 100;

            StartCoroutine(BuffRefresh());
            StartCoroutine(AutoRecover());

            CenterControl.Centerctrl.RegisterData(this);
        }
Example #28
0
 public override void UseItem()
 {
     MFProperties = StatsBase.Multi(PlayerData.Player.PlayerStats, MProperties);
     //Addbuff
 }
Example #29
0
 public override void CreacionDePersonaje(StatsBase statsBase)
 {
     CharacterBase = new ZpoppetCharacter(statsBase);
 }
Example #30
0
 public CharacterTest(StatsBase baseStat) : base(baseStat)
 {
 }