Exemple #1
0
        public PartySilverGainedEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                Debug.Print($"--- PartySilverGained (Event) ---");
                foreach (var parameter in parameters)
                {
                    Debug.Print($"{parameter}");
                }

                if (parameters.ContainsKey(0))
                {
                    TimeStamp = new GameTimeStamp(parameters[0].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(1))
                {
                    TargetEntityId = parameters[1].ObjectToLong();
                }

                if (parameters.ContainsKey(2))
                {
                    SilverNet = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    SilverPreTax = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                Debug.Print(e.Message);
            }
        }
Exemple #2
0
    /*
     * private Dictionary<DayTime, Color> dayTimeColors = new Dictionary<DayTime, Color>{
     *  {DayTime.MIDNIGHT, BLACK},
     *  {DayTime.MORNING, WHITE},
     *  {DayTime.AFTERNOON, WHITE},
     *  {DayTime.NIGHT, BLACK}
     * }; */

    public static void updateDayTime(Image overlayPanel, GameTimeStamp gTimeStamp)
    {
        switch (gTimeStamp.hours)
        {
        case int h when(h >= 0 && h <= 5):
            // MIDNIGHT
            break;

        case int h when(h == 6):
            // SUNRISE
            break;

        case int h when(h >= 7 && h <= 17):
            // DAY
            break;

        case int h when(h == 18):
            // SUNSET
            break;

        case int h when(h >= 19 && h <= 23):
        // NIGHT
        default:
            // SOMETHING WENT WRONG
            break;
        }
    }
        public HealthUpdateEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0))
                {
                    ObjectId = parameters[0].ObjectToLong() ?? throw new ArgumentNullException();
                }

                if (parameters.ContainsKey(1))
                {
                    TimeStamp = new GameTimeStamp(parameters[1].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(2))
                {
                    HealthChange = parameters[2].ObjectToDouble();
                }

                if (parameters.ContainsKey(3))
                {
                    NewHealthValue = parameters[3].ObjectToDouble();
                }

                if (parameters.ContainsKey(4))
                {
                    EffectType = (EffectType)(parameters[4] as byte? ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    EffectOrigin = (EffectOrigin)(parameters[5] as byte? ?? 0);
                }

                if (parameters.ContainsKey(6))
                {
                    CauserId = parameters[6].ObjectToLong() ?? throw new ArgumentNullException();
                }

                if (parameters.ContainsKey(7))
                {
                    CausingSpellType = parameters[7].ObjectToShort();
                }
            }
            catch (ArgumentNullException ex)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, ex);
                Log.Error(MethodBase.GetCurrentMethod().DeclaringType, ex);
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
                Log.Error(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
Exemple #4
0
    void updateGameMinutes(int gameMinutes)
    {
        gameMinutesElapsed += gameMinutes;
        // foreach(Flower f in flowers){
        //     f.updateGameMinutes(gameMinutes);
        // }
        GameTimeStamp gTimeStamp = ClockTextController.gameMinutesElapsedToGameTimeStamp(gameMinutesElapsed);

        ClockTextController.updateClockText(clockText, gTimeStamp);
        DayTimeController.updateDayTime(overlayPanel, gTimeStamp);
    }
Exemple #5
0
    public static void updateClockText(TextMeshProUGUI clockText, GameTimeStamp gTimeStamp)
    {
        int    hours = gTimeStamp.hours;
        string amPm  = "";

        if (twelveHourClock)
        {
            amPm   = gTimeStamp.hours < 12 ? "AM" : "PM";
            hours %= 12;
            hours  = hours == 0 ? 12 : hours;
        }

        clockText.text = $"{gTimeStamp.weekDay}, {hours}:{gTimeStamp.minutes:D2} {amPm}";
    }
Exemple #6
0
 public void SendHealthUpdate(long objectId, GameTimeStamp timeStamp, float healthChange, float newHealthValue, EffectType effectType, EffectOrigin effectOrigin, long causerId, int causingSpellType)
 {
     Broadcast(new WsCombatEvent
     {
         objectId       = objectId,
         timeStamp      = timeStamp.Ticks,
         healthChange   = healthChange,
         newHealthValue = newHealthValue,
         effectType     = effectType,
         effectOrigin   = effectOrigin,
         causerId       = causerId,
         causingSpell   = _gameData.SpellData.GetByType(causingSpellType)?.Name
     });
 }
Exemple #7
0
    public static GameTimeStamp gameMinutesElapsedToGameTimeStamp(int gameMinutesElapsed)
    {
        int           gameMins = gameMinutesElapsed;
        GameTimeStamp gts      = new GameTimeStamp();

        while (gameMins >= DAY_DURATION)
        {
            gameMins   -= DAY_DURATION;
            gts.weekDay = gts.weekDay.Next();
        }
        while (gameMins >= HOUR_DURATION)
        {
            gameMins -= HOUR_DURATION;
            gts.hours++;
        }
        gts.minutes = gameMins;
        return(gts);
    }
Exemple #8
0
 public void HealthUpdate(
     long objectId,
     GameTimeStamp TimeStamp,
     double HealthChange,
     double NewHealthValue,
     EffectType EffectType,
     EffectOrigin EffectOrigin,
     long CauserId,
     int CausingSpellType
     )
 {
     OnHealthUpdate?.Invoke(
         objectId,
         TimeStamp,
         HealthChange,
         NewHealthValue,
         EffectType,
         EffectOrigin,
         CauserId,
         CausingSpellType
         );
 }
Exemple #9
0
 public void HealthUpdate(
     long objectId,
     GameTimeStamp packageTimeStamp,
     float packageHealthChange,
     float packageNewHealthValue,
     EffectType packageEffectType,
     EffectOrigin packageEffectOrigin,
     long packageCauserId,
     int packageCausingSpellType
     )
 {
     OnHealthUpdate?.Invoke(
         objectId,
         packageTimeStamp,
         packageHealthChange,
         packageNewHealthValue,
         packageEffectType,
         packageEffectOrigin,
         packageCauserId,
         packageCausingSpellType
         );
 }
Exemple #10
0
        public PartySilverGainedEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                foreach (var parameter in parameters)
                {
                    Debug.Print($"{parameter}");
                }

                if (parameters.ContainsKey(0))
                {
                    TimeStamp = new GameTimeStamp(parameters[0].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(1))
                {
                    TargetEntityId = parameters[1].ObjectToLong();
                }

                if (parameters.ContainsKey(2))
                {
                    SilverNet = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    SilverPreTax = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
 public void DamageMeterUpdate(long objectId, GameTimeStamp timeStamp, double healthChange, double newHealthValue, EffectType effectType,
                               EffectOrigin effectOrigin, long causerId, int causingSpellType)
 {
     CombatController.AddDamageAsync(causerId, healthChange);
 }
Exemple #12
0
 public float GetCooldownPercent(GameTimeStamp A_0) => _internal.j((GameTimeStamp)A_0);
Exemple #13
0
        private bool TryToCastSpell(SpellTarget target, SpellCategory category, bool checkCastState)
        {
            try
            {
                //if (checkCastState && _localPlayerCharacterView.IsCasting())
                //    return true;

                if (checkCastState && _localPlayerCharacterView.IsCasting())
                {
                    return(false);
                }



                var spells = _combatSpells.Target(target).Category(category);
                // Core.Log($"{_localPlayerCharacterView.IsCasting()}");

                SpellSlot spellToCast;
                if (spells.Count() > 1)
                {
                    Random random = new Random(DateTime.Now.Millisecond);
                    spellToCast = spells.ElementAt(random.Next(0, spells.Count()));
                }
                else
                {
                    //var spellToCast = spells.Any() ? spells.First() : null;
                    spellToCast = spells.Any() ? spells.First() : null;
                }


                if (spellToCast == null)
                {
                    return(false);
                }

                var spellName = "Unknown";
                try
                {
                    spellName = spellToCast.GetSpellDescriptor().TryGetName();
                    Core.Log($"[Casting {spellName}]");

                    var spellSlot = spellToCast.Slot;

                    castStart1 = _localPlayerCharacterView.GetCastStartTime();
                    castStart2 = _localPlayerCharacterView.GetChannelingStartTimeStamp();

                    castEnd  = _localPlayerCharacterView.GetCastEndTime();
                    castEnd2 = _localPlayerCharacterView.GetCastFinishedEndTimeStamp();

                    switch (target)
                    {
                    case (SpellTarget.Self):
                        _localPlayerCharacterView.CastOnSelf(spellSlot);
                        break;

                    case (SpellTarget.Enemy):
                        _localPlayerCharacterView.CastOn(spellSlot, _combatTarget);
                        break;

                    case (SpellTarget.Ground):
                        _localPlayerCharacterView.CastAt(spellSlot, _combatTarget.GetPosition());
                        break;

                    default:
                        Core.Log($"[SpellTarget {target} is not supported. Spell skipped]");
                        return(false);
                    }

                    _combatCooldown = 0.1f;
                    return(true);
                }
                catch (Exception e)
                {
                    Core.Log($"[Error while casting {spellName} ({target}/{category}/{checkCastState})]");
                    Core.Log(e);
                    return(false);
                }
            }
            catch (Exception e)
            {
                Core.Log($"[Generic casting error ({target}/{category}/{checkCastState})]");
                Core.Log(e);
                return(false);
            }
        }
Exemple #14
0
        public HealthUpdateEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                //Debug.Print($"----- HealthUpdate (Event) -----");
                //foreach (var parameter in parameters)
                //{
                //    Debug.Print($"{parameter}");
                //}

                if (parameters.ContainsKey(0))
                {
                    ObjectId = parameters[0].ObjectToLong();
                }

                if (parameters.ContainsKey(1))
                {
                    TimeStamp = new GameTimeStamp(parameters[1].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(2))
                {
                    HealthChange = parameters[2].ObjectToDouble();
                }

                if (parameters.ContainsKey(3))
                {
                    NewHealthValue = parameters[3].ObjectToDouble();
                }

                if (parameters.ContainsKey(4))
                {
                    EffectType = (EffectType)(parameters[4] as byte? ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    EffectOrigin = (EffectOrigin)(parameters[5] as byte? ?? 0);
                }

                if (parameters.ContainsKey(6))
                {
                    CauserId = parameters[6].ObjectToLong();
                }

                if (parameters.ContainsKey(7))
                {
                    CausingSpellType = parameters[7].ObjectToShort();
                }

                //Debug.Print($"---------------------------");
                //Debug.Print($"ObjectId: {ObjectId}");
                //Debug.Print($"TimeStamp: {TimeStamp}");
                //Debug.Print($"HealthChange: {HealthChange}");
                //Debug.Print($"NewHealthValue: {NewHealthValue}");
                //Debug.Print($"EffectType: {EffectType}");
                //Debug.Print($"EffectOrigin: {EffectOrigin}");
                //Debug.Print($"CauserId: {CauserId}");
                //Debug.Print($"CausingSpellType: {CausingSpellType}");
            }
            catch (Exception e)
            {
                Log.Error(nameof(UpdateMoneyEvent), e);
            }
        }