Exemplo n.º 1
0
 void Awake()
 {
     events = GetComponent <CharacterEvents> ();
     hitParticles.gameObject.SetActive(false);
     bloodines = (IBloodines[])GetComponentsInChildren <IBloodines>(true);
     health    = GetComponent <Health> ();
 }
Exemplo n.º 2
0
 // Use this for initialization
 void Awake()
 {
     anim   = GetComponent <Animator> ();
     stats  = GetComponent <CharacterStats> ();
     events = GetComponent <CharacterEvents> ();
     joku   = false;
 }
Exemplo n.º 3
0
        private static void MainWindow_KeyPressed(object sender, KeyEventArgs e)
        {
            if (windowModeNow == WindowMode.Game)
            {
                if (e.Control)
                {
                    switch (e.Code)
                    {
                    case Keyboard.Key.H: { CharacterEvents.Hit(Program.levelNow.MainCharacter, 10); return; }

                    case Keyboard.Key.S:
                    {
                        Character enemy = Character.SpawnCharacter(100, new Point(random.Next((int)WidthWindow), random.Next((int)HeightWindow - 300)), CharacterMovesAnimation.StandEnemyTexture, new ShotGun());
                        levelNow.Enemies.Add(enemy);
                        return;
                    }

                    case Keyboard.Key.P: { Program.levelNow.Score += 100; return; }
                    }
                }

                switch (e.Code)
                {
                case Keyboard.Key.R: { levelNow.MainCharacter.gunNow.Reload(); return; }

                case Keyboard.Key.Escape: { levelNow.Pause(); windowModeNow = WindowMode.Pause; return; }

                case Keyboard.Key.Space: { CharacterMovesAnimation.JumpFinished = false; CharacterEvents.Jump(Program.levelNow.MainCharacter); return; }

                case Keyboard.Key.A: { Program.levelNow.moveNow = CharacterEvents.Moves.LEFT; return; }

                case Keyboard.Key.D: { Program.levelNow.moveNow = CharacterEvents.Moves.RIGHT; return; }

                case Keyboard.Key.E: { foreach (var obj in levelNow.Stuffs.ToArray())
                                       {
                                           if (obj.Event())
                                           {
                                               return;
                                           }
                                       }
                                       return; }
                }

                for (var i = 1; i <= 9; i++)
                {
                    if (e.Code.ToString() == "Num" + i.ToString())
                    {
                        if (i > Inventory.Guns.Count)
                        {
                            return;
                        }
                        levelNow.MainCharacter.gunNow = Inventory.Guns[i - 1] as Gun;
                        return;
                    }
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Actually applies the force to jump.
        /// </summary>
        void JumpImpl()
        {
            // Apply upward force to jump
            Rigidbody.AddForce(Vector3.up * Mathf.Sqrt(2 * Gravity * _jumpHeights[JumpCount]), ForceMode.VelocityChange);

            JumpCount++;

            CharacterEvents.Publish(new PlayerJumpEvent {
                Ground = IsGrounded, RemainingJumps = MaxJumpCount - JumpCount
            });
        }
Exemplo n.º 5
0
 void Awake()
 {
     coll             = GetComponent <CapsuleCollider> ();
     stats            = GetComponent <CharacterStats> ();
     events           = GetComponent <CharacterEvents> ();
     animator         = GetComponent <Animator> ();
     events.Death    += SetAnimatorTrigger;
     events.Death    += DisableCollider;
     currentHealth    = stats.baseMaxHealth;
     currentStability = stats.baseMaxStability;
     stabilityStage   = 0;
 }
Exemplo n.º 6
0
        public virtual void Update(RenderWindow window)
        {
            CharacterEvents.UpdateChar(MainCharacter);

            CharacterEvents.UpdateMainChar(moveNow, MainCharacter);

            foreach (var enemy in Enemies.ToArray())
            {
                CharacterEvents.UpdateChar(enemy);

                if (enemy == Boss)
                {
                    CharacterEvents.UpdateEnemyBoss(enemy);
                }
                else
                {
                    CharacterEvents.UpdateEnemy(enemy);
                }
            }

            foreach (var stuff in Stuffs.ToArray())
            {
                stuff.Update(window);
            }

            if ((DateTime.Now - timeNowAirDrop).TotalSeconds - timeOnPause < TimeToAirDrop)
            {
                InterfaceTimeToAirDrop = (int)(TimeToAirDrop - (DateTime.Now - timeNowAirDrop).TotalSeconds + timeOnPause);
            }
            else
            {
                int choose = random.Next(2);

                switch (choose)
                {
                case 0:
                {
                    Stuffs.Add(new AidKit(new Vector2f(random.Next((int)Program.WidthWindow), 0)));
                    break;
                }

                case 1:
                {
                    Stuffs.Add(new Ammo(new Vector2f(random.Next((int)Program.WidthWindow), 0)));
                    break;
                }
                }

                timeNowAirDrop = DateTime.Now;
                timeOnPause    = 0;
            }
        }
Exemplo n.º 7
0
        public void Heal(object source, float healing)
        {
            healing = Mathf.Abs(healing);

            if (HealingModifiers.In.Count > 0)
            {
                healing = HealingModifiers.In.Modifiy(source, healing);
            }

            CurrentDamage = DamageType.Heal(CurrentDamage, healing);

            CharacterEvents.Publish(new PlayerHealEvent {
                Healing = healing, CurrentDamage = CurrentDamage
            });
        }
Exemplo n.º 8
0
 void Awake()
 {
     sMRenderer   = GetComponent <SkinnedMeshRenderer> ();
     staticObject = Resources.Load(pathToBodyPartFolder + bodyPartPath, typeof(GameObject)) as GameObject;
     if (staticObject == null || parentBone == null)
     {
         Destroy(this);
     }
     staticObject = Instantiate(staticObject);
     staticObject.transform.SetParent(transform);
     staticObject.transform.position = parentBone.transform.position;
     staticObject.transform.rotation = parentBone.transform.rotation;
     rB = staticObject.GetComponent <Rigidbody> ();
     staticObject.SetActive(false);
     events = sMRenderer.transform.parent.parent.GetComponent <CharacterEvents> ();
 }
Exemplo n.º 9
0
        public virtual void Draw(RenderWindow window)
        {
            foreach (var stuff in Stuffs.ToArray())
            {
                stuff.Draw(window);
            }

            CharacterEvents.Draw(window, MainCharacter);

            foreach (var enemy in Enemies.ToArray())
            {
                CharacterEvents.Draw(window, enemy);
            }

            Interface.Draw(window);
        }
Exemplo n.º 10
0
        public void Damage(object source, float damage)
        {
            damage = Mathf.Abs(damage);

            if (DamageModifiers.In.Count > 0)
            {
                damage = DamageModifiers.In.Modifiy(source, damage);
            }

            CurrentDamage = DamageType.Damage(CurrentDamage, damage);

            Mathf.Clamp(CurrentDamage, DamageType.MinDamage, DamageType.MaxDamage);

            CharacterEvents.Publish(new PlayerDamageEvent {
                Damage = damage, CurrentDamage = CurrentDamage
            });
        }
Exemplo n.º 11
0
    public virtual bool addTemporaryStatusEffectSlot(StatusEffectSlot slot)
    {
        if (slot.unique)
        {
            var old =
                temporaryStatusEffectSlots
                .Find(s => s.statusEffect == slot.statusEffect);
            if (old != null)
            {
                var temp = old.compareNewSlot(slot);
                if (temp == old || temp == null)
                {
                    return(false);
                }
                removeTemporaryStatusEffectSlot(old);
            }
        }
        slot.statusEffect.onAdd(this);
        events += slot.events;
        temporaryStatusEffectSlots.Add(slot);

        return(true);
    }
Exemplo n.º 12
0
 public virtual void removeTemporaryStatusEffectSlot(StatusEffectSlot slot)
 {
     slot.onRemove(this);
     events -= slot.events;
     temporaryStatusEffectSlots.Remove(slot);
 }