コード例 #1
0
 public FreeFromInjuryBuff(Bot source, float time, BuffSystem owner)
 {
     this.Source   = source;
     this.Owner    = owner;
     this.BuffType = BuffType.buff;
     BuffEndRule   = new RuleTimeOver(time);
 }
コード例 #2
0
    protected void targetGiveBuff(GameObject target, Buff buff)
    {
        int charDamage = (int)character.characterInfo.damage + character.characterInfo.addedDamage;

        Buff newBuff = buff.Clone();

        // 버프 계수 계산
        switch (buff.buffType)
        {
        case BuffType.ArmorDown:
        case BuffType.ArmorUP:
        case BuffType.AttackDown:
        case BuffType.AttackUP:
        case BuffType.DotDamage:
        case BuffType.DotHeal:
            newBuff.amount *= charDamage;
            break;
        }

        BuffSystem buffSystem = target.GetComponent <BuffSystem>();

        if (buffSystem != null)
        {
            buffSystem.AddBuff(newBuff);
        }
    }
コード例 #3
0
 virtual protected void Awake()
 {
     animator       = GetComponent <Animator>();
     buffSystem     = GetComponent <BuffSystem>();
     spriteRenderer = GetComponent <SpriteRenderer>();
     myAttack       = GetComponent <Attack>();
     myHealth       = GetComponent <Health>();
 }
コード例 #4
0
    public void Act(GameObject go)
    {
        _buffSystem = FindObjectOfType <BuffSystem>();

        _buffOwner = go.GetComponent <CharCombatValues>();

        AddBuff();
    }
コード例 #5
0
ファイル: Buff.cs プロジェクト: Pircs/Yi
 public Buff(YiObj owner, SkillId id, TimeSpan duration)
 {
     SkillId   = id;
     Duration  = duration;
     StartTime = DateTime.UtcNow;
     EndTime   = DateTime.UtcNow.Add(Duration);
     RemoveJob = YiScheduler.Instance.DoReturn(Duration, () => BuffSystem.RemoveBuff(owner, this));
 }
コード例 #6
0
 public MoveSpeedBuff(Bot source, float time, BuffSystem owner, float moveSpeedRate, BuffType buffType)
 {
     m_moveSpeedRate     = moveSpeedRate;
     this.Source         = source;
     this.Owner          = owner;
     this.BuffType       = buffType;
     this.BuffEndRule    = new RuleTimeOver(time);
     m_originalMoveSpeed = Owner.owner.Abilities.MoveSpeedRate;
 }
コード例 #7
0
ファイル: HeatBuff.cs プロジェクト: mengtest/HackingSystem
 public HeatBuff(Bot source, float time, BuffType buffType, BuffSystem owner, int heatDelta)
 {
     this.Source   = source;
     this.Owner    = owner;
     this.BuffType = buffType;
     m_heatDelta   = heatDelta;
     m_timer       = new Timer();
     BuffEndRule   = new RuleTimeOver(time);
 }
コード例 #8
0
ファイル: MPBuff.cs プロジェクト: mengtest/HackingSystem
 public MPBuff(Bot source, float time, BuffType buffType, BuffSystem owner, int mpDelta)
 {
     m_mpDelta     = mpDelta;
     this.Source   = source;
     this.Owner    = owner;
     this.BuffType = buffType;
     m_timer       = new Timer();
     BuffEndRule   = new RuleTimeOver(time);
 }
コード例 #9
0
ファイル: Character.cs プロジェクト: randyqlee/Project-Git
 void Awake()
 {
     hero          = Instantiate(hero);
     healthSystem  = gameObject.GetComponent <HealthSystem>();
     skillSystem   = gameObject.GetComponent <SkillSystem>();
     buffSystem    = gameObject.GetComponent <BuffSystem>();
     abilitySystem = gameObject.GetComponent <AbilitySystem>();
     //AddRequiredComponents();
 }
コード例 #10
0
 public void SetBuffSystem(BuffSystem buffSystem)
 {
     if (null != buffSystem)
     {
         buffSystem.OnBuffsChanged -= BuffSystem_OnBuffsChanged;
     }
     this.buffSystem            = buffSystem;
     buffSystem.OnBuffsChanged += BuffSystem_OnBuffsChanged;
     BuffSystem_OnBuffsChanged(this, EventArgs.Empty);
 }
コード例 #11
0
ファイル: [1070] Advanced Dispel.cs プロジェクト: Pircs/Yi
        private static bool AddBuff(YiObj target, Skill skill)
        {
            var shieldBuff = new Buff(target, SkillId.AdvancedDispel, BuffDuration)
            {
                PhysDefMod  = DefenseBonusPercent,
                Effect      = StatusEffect.MagicShield,
                Description = $"MagicShield Level {skill.Level}: +{(DefenseBonusPercent*100)-100}% Physical Defense."
            };

            BuffSystem.AddBuff(target, shieldBuff);
            return(true);
        }
コード例 #12
0
ファイル: [1075] Invisibility.cs プロジェクト: Pircs/Yi
        private static bool AddBuff(YiObj target, Skill skill)
        {
            var shieldBuff = new Buff(target, SkillId.Shield, BuffDuration)
            {
                Effect      = StatusEffect.Invisibility,
                Description = $"Invisibility Level {skill.Level}"
            };

            target.RemoveStatusEffect(StatusEffect.XpList);
            BuffSystem.AddBuff(target, shieldBuff);
            return(true);
        }
コード例 #13
0
    void Awake()
    {
        mStateMachine    = new StateMachine();
        mBuffSystem      = new BuffSystem(this);
        mRigidbody       = GetComponent <Rigidbody>();
        mAnimator        = GetComponent <Animator>();
        mAgent           = GetComponent <NavMeshAgent>();
        mCapsuleCollider = GetComponent <CapsuleCollider>();
        mRenderers       = GetComponentsInChildren <SkinnedMeshRenderer>();

        aWake();
    }
コード例 #14
0
        private static bool AddBuff(YiObj target, Skill skill)
        {
            var shieldBuff = new Buff(target, SkillId.Cyclone, BuffDuration)
            {
                SpeedMod    = SpeedBonusPercent,
                Effect      = StatusEffect.Cyclone,
                Description = "Cyclone: +100% Speed!"
            };

            target.RemoveStatusEffect(StatusEffect.XpList);
            BuffSystem.AddBuff(target, shieldBuff);
            return(true);
        }
コード例 #15
0
ファイル: [1025][XP] Superman.cs プロジェクト: Pircs/Yi
        private static bool AddBuff(YiObj target, Skill skill)
        {
            var shieldBuff = new Buff(target, SkillId.Superman, BuffDuration)
            {
                PhysAtkMod  = AttackBonusPercent,
                Effect      = StatusEffect.SuperMan,
                Description = "Superman: +1.000% Attack!"
            };

            target.RemoveStatusEffect(StatusEffect.XpList);
            BuffSystem.AddBuff(target, shieldBuff);
            return(true);
        }
コード例 #16
0
    void Start()
    {
        starvingTickTimer    = GameObject.Find("Calendar").GetComponent <GameTime>().dayTime;
        resourceManager      = MetaScript.getRes();
        allUIGameObjects     = GameObject.Find("AllUIObjectsCanvas");
        npcManagerGameObject = allUIGameObjects.transform.GetChild(0).GetChild(0).gameObject;

        setNPCList(MetaScript.GetNPC());
        player     = GameObject.FindGameObjectWithTag("Player");
        buffSystem = new BuffSystem();

        noFood = false;

        //StartCoroutine (starvingTimer (starvingTickTimer));
    }
コード例 #17
0
        private static void EndXPList(Player player, ref MsgAction packet)
        {
            player.Xp = 0;
            BuffSystem.Clear(player);
            player.RemoveStatusEffect(StatusEffect.XpList);
            player.RemoveStatusEffect(StatusEffect.Cyclone);
            player.RemoveStatusEffect(StatusEffect.SuperMan);
            player.RemoveStatusEffect(StatusEffect.XpShield);

            player.Send(packet);

            if (player.HasFlag(StatusEffect.Die))
            {
                player.AddStatusEffect(StatusEffect.Die);
            }
        }
コード例 #18
0
    private void Awake()
    {
        entities        = new List <Entity>();
        newEntities     = new Queue <Entity>();
        expiredEntities = new Queue <Entity>();

        entitySystem     = new EntitySystem(this);
        inputSystem      = new InputSystem(this);
        moveSystem       = new MoveSystem(this);
        controllerSystem = new ControllerSystem(this);
        gunSystem        = new GunSystem(this);
        bulletSystem     = new BulletSystem(this);
        buffSystem       = new BuffSystem(this);
        aiSystem         = new AISystem(this);
        levelSystem      = new LevelSystem(this);
    }
コード例 #19
0
    // Use this for initialization
    void Start()
    {
        stage = lifeStages.WAITING;
        timeSinceStageChange = currentStageDuration + 1;

        float   scale    = Random.Range(minScale, maxScale);
        Vector3 newScale = new Vector3();

        newScale.x           = scale;
        newScale.y           = scale;
        newScale.z           = scale;
        transform.localScale = newScale;

        timeToLive = Random.Range(minTimeToLive, maxTimeToLive);

        buffsys = new BuffSystem();
    }
コード例 #20
0
    // Use this for initialization
    void Start()
    {
        Vector3 pos = transform.position;

        pos.y += startPosY;
        transform.position = pos;

        Vector3 scale = transform.localScale;

        scale.x = fallingScale;
        scale.y = fallingScale;
        scale.z = fallingScale;
        transform.localScale = scale;

        stage   = lifeStage.FALLING;
        buffsys = new BuffSystem();
    }
コード例 #21
0
    void EnemyAttack(GameObject gameObject)
    {
        if (takeDamageInfo.skillInfo.doUseBuff)
        {
            Buff newBuff = takeDamageInfo.skillInfo.buff.Clone();

            // 버프 계수 계산
            switch (newBuff.buffType)
            {
            case BuffType.ArmorDown:
            case BuffType.ArmorUP:
            case BuffType.AttackDown:
            case BuffType.AttackUP:
            case BuffType.DotDamage:
            case BuffType.DotHeal:
                newBuff.amount *= takeDamageInfo.damage;
                break;
            }

            BuffSystem buffSystem = gameObject.GetComponent <BuffSystem>();
            if (buffSystem != null)
            {
                buffSystem.AddBuff(newBuff);
            }
        }

        float bloodPercent = takeDamageInfo.skillInfo.bloodPercent;

        if (targetTag != "unit")
        {
            bloodPercent = ArtifactManager.Instance.CalcBloodSucking(bloodPercent);
        }

        if (takeDamageInfo.skillInfo.bloodSucking)
        {
            if (user.gameObject.activeInHierarchy && user.characterInfo.currentHP > 0)
            {
                user.SendMessage("takeHeal", (takeDamageInfo.damage * bloodPercent));
            }
        }

        gameObject.SendMessage("takeAttack", takeDamageInfo);
    }
コード例 #22
0
        private static bool AddBuff(YiObj target, Skill skill)
        {
            //Map map;
            //if (GameWorld.Maps.TryGetValue(target.MapId, out map))
            //{
            //    if (map.Flags.HasFlag(MapFlags.DisableFly))
            //        target.GetMessage("SYSTEM", target.Name, "Flying forbidden on this map.", MsgTextType.Action);
            //        return false;
            //}

            var flyBuff = new Buff(target, SkillId.Fly, BuffDuration)
            {
                Effect      = StatusEffect.Flying,
                Description = $"XP Fly:{skill.Level}: Makes you fly :3"
            };

            BuffSystem.AddBuff(target, flyBuff);
            target.RemoveStatusEffect(StatusEffect.XpList);
            return(true);
        }
コード例 #23
0
ファイル: TestBot.cs プロジェクト: mengtest/HackingSystem
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "MoveBuff")
     {
         BuffSystem.AddBuff(new MoveSpeedBuff(null, 2f, BuffSystem, 3f, BuffType.buff));
         Destroy(other.gameObject);
     }
     if (other.tag == "HeatBuff")
     {
         BuffSystem.AddBuff(new HeatBuff(null, 10f, BuffType.buff, BuffSystem, -2));
         Destroy(other.gameObject);
     }
     if (other.tag == "MPBuff")
     {
         BuffSystem.AddBuff(new MPBuff(null, 10f, BuffType.buff, BuffSystem, 3));
         Destroy(other.gameObject);
     }
     if (other.tag == "FreeFromInjuryBuff")
     {
         BuffSystem.AddBuff(new FreeFromInjuryBuff(null, 3f, BuffSystem));
         Destroy(other.gameObject);
     }
 }
コード例 #24
0
 // Use this for initialization
 void Start()
 {
     buffsys = new BuffSystem();
     player  = GameObject.FindGameObjectWithTag("Player");
 }
コード例 #25
0
 // Use this for initialization
 void Start()
 {
     buffsys = new BuffSystem();
     maxTime = Random.Range(minTimeToGrow, maxTimeToGrow);
 }
コード例 #26
0
 // Use this for initialization
 void Start()
 {
     buffsys = new BuffSystem();
 }
コード例 #27
0
        private static async void Process(Player player, int npcIdoverride = 0)
        {
            if (Control == 255 && player.Online)
            {
                player.CurrentNpcId = 0;
            }

            if (player.CurrentNpcId == 0)
            {
                return;
            }

            var id = player.CurrentNpcId;

            if (npcIdoverride != 0)
            {
                id = npcIdoverride;
            }

            switch (id)
            {
            case 1337:
            {
                switch (Control)
                {
                case 255:
                    player.CurrentNpcId = 1337;
                    using (var packet = new NpcDialog(10))
                    {
                        packet

                        .Text("Select Char")
                        .Link("Next", 1)
                        .Link("Select", 10)
                        .Link("New", 100)
                        .Finish();

                        player.Send(packet);
                    }
                    break;

                case 1:
                    var players = SelectorSystem.GetPlayersFor(player.AccountId).ToList();

                    var index = players.IndexOf(player);
                    if (index + 1 > players.Count - 1)
                    {
                        index = 0;
                    }
                    else
                    {
                        index++;
                    }

                    player = SelectorSystem.SwapCharacter(player, players[index]);
                    player.Send(LegacyPackets.CharacterInformation(player));
                    player.Send(MsgAction.MapShowPacket(player));
                    player.AddStatusEffect(StatusEffect.Frozen);
                    ScreenSystem.Create(player);
                    ScreenSystem.Update(player);
                    break;

                case 10:
                    player.RemoveStatusEffect(StatusEffect.Frozen);
                    ScreenSystem.Create(player);
                    player.AddSpawnProtection();
                    player.IncrementXp();

                    foreach (var kvp in player.Skills)
                    {
                        player.Send(MsgSkill.Create(kvp.Value));
                    }
                    foreach (var prof in player.Profs)
                    {
                        player.Send(MsgProf.Create(prof.Value));
                    }

                    EntityLogic.Recalculate(player);
                    player.CurrentHp = player.MaximumHp;
                    player.CurrentMp = player.MaximumMp;
                    GameWorld.Maps[player.MapId].Enter(player);

                    player.Send(MsgAction.Create(player, (int)player.PkMode, MsgActionType.ChangePkMode));
                    player.Send(MsgUpdate.Create(player, player.Stamina, MsgUpdateType.Stamina));
                    player.Send(MsgUpdate.Create(player, player.Class, MsgUpdateType.Class));
                    player.Online = true;

                    if (player.HasFlag(StatusEffect.SuperMan))
                    {
                        BuffSystem.Create(player);
                        BuffSystem.AddBuff(player, new Buff(player, SkillId.Superman, TimeSpan.FromSeconds(10)));
                    }
                    if (player.HasFlag(StatusEffect.Cyclone))
                    {
                        BuffSystem.Create(player);
                        BuffSystem.AddBuff(player, new Buff(player, SkillId.Cyclone, TimeSpan.FromSeconds(10)));
                    }

                    if (player.PkPoints > 1)
                    {
                        player.PkPJob = new Job(TimeSpan.FromSeconds(15), () => player.PkPoints--);
                        YiScheduler.Instance.Do(player.PkPJob);
                    }
                    ScreenSystem.Send(player, MsgAction.Create(player, player.UniqueId, MsgActionType.EntityRemove));
                    ScreenSystem.Send(player, MsgSpawn.Create(player));
                    break;

                case 100:
                    SelectorSystem.CreateNewCharacterFor(player.AccountId);
                    player.Disconnect();
                    break;
                }
                break;
            }

            default:
            {
                if (!await ScriptEngine.ActivateNpc(player, NpcId, (byte)Control, Input))
                {
                    if (GameWorld.Find(NpcId, out Npc npc) && Control == 0)
                    {
                        ConquerActionProcessor.ExecuteAction(npc, player, Control);
                    }
                    //Message.SendTo(player, $"[{player.CurrentNpcId}] Npc has no script.", MsgTextType.Talk);
                }
                break;
            }
            }
        }
コード例 #28
0
 protected void Awake()
 {
     buffSystem = new BuffSystem(this);
 }
コード例 #29
0
 public void UnBindBuffSystem()
 {
     buffSystem = null;
     HideAllUI_Buffs();
 }
コード例 #30
0
ファイル: Character.cs プロジェクト: randyqlee/Project-Git
 private void AddRequiredComponents()
 {
     healthSystem = gameObject.AddComponent <HealthSystem>();
     skillSystem  = gameObject.AddComponent <SkillSystem>();
     buffSystem   = gameObject.AddComponent <BuffSystem>();
 }