コード例 #1
0
ファイル: DamageNumItem.cs プロジェクト: v-star0719/Onmyoji
 public void SetData(Characer c, int number)
 {
     characer      = c;
     offset        = new Vector3(1f, 2, 0);
     numLabel.text = number.ToString();
     isFinished    = false;
 }
コード例 #2
0
ファイル: Events.cs プロジェクト: v-star0719/Onmyoji
 public DamageEvent(Characer caster, Characer receiver, DamageInfo damageInfo)
 {
     id              = (int)EventType.OnDamage;
     this.caster     = caster;
     this.receiver   = receiver;
     this.damageInfo = damageInfo;
 }
コード例 #3
0
    public PassiveSkill CreateSkill(int skillId, Characer caster)
    {
        var skill = new PassiveSkill(skillId, caster);

        skill.Start();
        skills.Add(skill);
        return(skill);
    }
コード例 #4
0
    public Skill CreateSkill(int skillId, Characer c)
    {
        Skill s = new Skill();

        s.Init(c, SkillConfigManager.instance.Get(skillId));
        skills.Add(s);
        return(s);
    }
コード例 #5
0
ファイル: BuffManager.cs プロジェクト: v-star0719/Onmyoji
    public void AddBuff(int id, Characer caster, Characer receiver, int duration)
    {
        var  data = BuffConfigManager.instance.Get(id);
        Buff buff = new Buff(caster, receiver, data, duration);

        buffs.Add(buff);
        receiver.buffs.Add(buff);
    }
コード例 #6
0
ファイル: DamageUtil.cs プロジェクト: v-star0719/Onmyoji
    //不计算防御暴击的伤害
    public static DamageInfo CalculateDamage(Characer caster, Characer receiver, float damage)
    {
        DamageInfo damgeInfo = new DamageInfo();

        damgeInfo.damage = damage;
        DamageApplyCharacterSpeciality(caster, receiver, damgeInfo);
        return(damgeInfo);
    }
コード例 #7
0
 public Buff(Characer caster, Characer receiver, BuffConfig config, int round)
 {
     this.caster   = caster;
     this.receiver = receiver;
     this.config   = config;
     this.duration = round;
     Start();
 }
コード例 #8
0
ファイル: DamageUtil.cs プロジェクト: v-star0719/Onmyoji
 private static void DamageApplyCharacterSpeciality(Characer caster, Characer receiver, DamageInfo damgeInfo)
 {
     if (caster.special == CharacterSpecialType.HighPercentHpDamageAdd)
     {
         if (receiver.GetHp(true) > 0.7f)
         {
             damgeInfo.damage *= 1.4f;
         }
     }
 }
コード例 #9
0
    public void PushDownCharacterPos(Characer c, float percent)
    {
        var d = instance.GetCharacerData(c);

        d.pos -= TRACK_LENGTH * percent;
        if (d.pos < 0)
        {
            d.pos = 0;
        }
    }
コード例 #10
0
    public void PullUpCharacterPos(Characer c, float percent)
    {
        var d = instance.GetCharacerData(c);

        d.pos += TRACK_LENGTH * percent;
        if (d.pos > TRACK_LENGTH)
        {
            d.pos = TRACK_LENGTH;
        }
    }
コード例 #11
0
ファイル: BattleManager.cs プロジェクト: v-star0719/Onmyoji
 public void RemoveCharacter(Characer c)
 {
     if (c.isMonster)
     {
         monsterDeadCount++;
     }
     else
     {
         shikigamiDeadCount++;
     }
     characers.Remove(c);
 }
コード例 #12
0
    public static List <Characer> SearchTarget(Characer characer, TargetType targetType, TargetFieltType fieltType)
    {
        List <Characer> targets = new List <Characer>();

        if (targetType == TargetType.Self)
        {
            targets.Add(characer);
            return(targets);
        }

        var list = BattleManager.instance.characers;

        foreach (var c in list)
        {
            if (c.isDying)
            {
                continue;
            }

            if (IsTarget(characer, c))
            {
                targets.Add(c);
            }
        }

        if (fieltType == TargetFieltType.None)
        {
            return(targets);
        }

        if (fieltType == TargetFieltType.HpPercentLowest)
        {
            Characer t  = null;
            float    hp = 1;
            foreach (var c in targets)
            {
                if (t == null || c.GetHp(true) <= hp)
                {
                    hp = c.GetHp(true);
                    t  = c;
                }
            }
            targets.Clear();
            targets.Add(t);
        }

        return(targets);
    }
コード例 #13
0
    private void OnBuffChanged(Characer c)
    {
        StringBuilder sb = new StringBuilder("");

        for (var i = 0; i < c.buffs.Count; i++)
        {
            var buff = c.buffs[i];
            sb.Append(buff.config.name);
            if (i < c.buffs.Count - 1)
            {
                sb.Append("\n");
            }
        }
        buffLabel.text = sb.ToString();
        buffLabel.gameObject.SetActive(string.IsNullOrEmpty(buffLabel.text));
    }
コード例 #14
0
ファイル: DamageUtil.cs プロジェクト: v-star0719/Onmyoji
    //正常伤害计算
    public static DamageInfo CalculateDamage(Characer caster, Characer receiver, Skill skill)
    {
        DamageInfo damgeInfo = new DamageInfo();

        damgeInfo.damage = skill.config.damageRate * caster.attack;
        damgeInfo.isCrit = Random.Range(0, 100) < caster.attack;
        if (damgeInfo.isCrit)
        {
            damgeInfo.damage = damgeInfo.damage * caster.critDamge;
        }

        float defend = 300 / (receiver.defense + 300);

        damgeInfo.damage *= defend;

        DamageApplyCharacterSpeciality(caster, receiver, damgeInfo);

        return(damgeInfo);
    }
コード例 #15
0
ファイル: Skill.cs プロジェクト: v-star0719/Onmyoji
    public void DoAttack(Characer receiver)
    {
        var   d        = DamageUtil.CalculateDamage(caster, receiver, this);
        float hpChange = receiver.BeAttacked(d);

        overflowDamage += d.damage - hpChange;

        if (caster.special == CharacterSpecialType.RealDamage)
        {
            float damage = caster.attack * 1.2f;
            float max    = receiver.maxHp * 0.1f;
            if (damage > max)
            {
                damage = max;
            }
            DamageInfo info = new DamageInfo();
            info.damage = damage;
            receiver.BeAttacked(info);
        }
    }
コード例 #16
0
ファイル: Skill.cs プロジェクト: v-star0719/Onmyoji
    public void Cast(Characer target)
    {
        isCasted       = true;
        attackTimes    = 0;
        attackTimer    = -1;     //第一次立即执行
        overflowDamage = 0;
        this.target    = target;

        if (config.buff1Id > 0)
        {
            BuffManager.instance.AddBuff(config.buff1Id, caster, target, config.buff1Round);
        }
        if (config.buff2Id > 0)
        {
            BuffManager.instance.AddBuff(config.buff2Id, caster, target, config.buff2Round);
        }

        if (config.addFire > 0)
        {
            BattleManager.instance.ChangeFire(config.addFire);
        }
    }
コード例 #17
0
 public void SetData(Characer c)
 {
     characer       = c;
     offset         = new Vector3(0, 2, 0);
     nameLabel.text = c.Name;
 }
コード例 #18
0
ファイル: Skill.cs プロジェクト: v-star0719/Onmyoji
 public void Init(Characer c, SkillConfig config)
 {
     caster      = c;
     this.config = config;
 }
コード例 #19
0
 public CharacterMoveBarData GetCharacerData(Characer c)
 {
     return(moveBarDatas.Find((d) => d.characer == c));
 }
コード例 #20
0
 public PassiveSkill(int skillId, Characer caster)
 {
     this.caster = caster;
     config      = PassiveSkillConfigManager.instance.Get(skillId);
     skill       = SkillManager.instance.CreateSkill(config.skillId, this.caster);
 }
コード例 #21
0
ファイル: Events.cs プロジェクト: v-star0719/Onmyoji
 public CharacterBornEvent(Characer c)
 {
     id       = (int)EventType.CharacterBorn;
     characer = c;
 }
コード例 #22
0
ファイル: Events.cs プロジェクト: v-star0719/Onmyoji
 public CharacterDeadEvent(Characer c)
 {
     id       = (int)EventType.CharacterDead;
     characer = c;
 }
コード例 #23
0
ファイル: Events.cs プロジェクト: v-star0719/Onmyoji
 public AddBuffEvent(Characer characer, Buff buff)
 {
     id            = (int)EventType.AddBuff;
     this.characer = characer;
     this.buff     = buff;
 }
コード例 #24
0
ファイル: BattleManager.cs プロジェクト: v-star0719/Onmyoji
 public void AddCharacter(Characer c)
 {
     characers.Add(c);
     EventManager.instance.FireEvent(new CharacterBornEvent(c));
 }
コード例 #25
0
 private static bool IsTarget(Characer c, Characer target)
 {
     return(c.isMonster != target.isMonster);
 }
コード例 #26
0
ファイル: Events.cs プロジェクト: v-star0719/Onmyoji
 public RemoveBuffEvent(Characer characer, Buff buff)
 {
     id            = (int)EventType.RemoveBuff;
     this.characer = characer;
     this.buff     = buff;
 }