Add Random Events

This commit is contained in:
SilicaAndPina 2021-05-12 10:11:53 +12:00
parent d7e350fef6
commit 9add26a6fa
5 changed files with 165 additions and 4 deletions
Horse Isle Server/HorseIsleServer/Server

View file

@ -6,6 +6,7 @@ using System.Threading;
using HISP.Player;
using HISP.Game;
using HISP.Game.Horse;
using HISP.Game.Events;
namespace HISP.Server
{
@ -84,6 +85,12 @@ namespace HISP.Server
SendPacket(playTimeMessage);
}
if (GameServer.RandomNumberGenerator.Next(0, 100) == 59) // RANDOM EVENT HAS OCCURED!
{
RandomEvent.ExecuteRandomEvent(LoggedinUser);
}
bool gotoPrision = false;
foreach(HorseInstance horse in LoggedinUser.HorseInventory.HorseList)
{
@ -196,16 +203,16 @@ namespace HISP.Server
if (totalMinutesElapsed % 5 == 0)
LoggedinUser.Thirst--;
if (totalMinutesElapsed % 10 == 0)
if (totalMinutesElapsed % 15 == 0)
LoggedinUser.Hunger--;
if (totalMinutesElapsed % 15 == 0)
LoggedinUser.Tiredness--;
}
if (!isDisconnecting)
minuteTimer.Change(oneMinute, oneMinute);
dcLock = false;

View file

@ -858,6 +858,32 @@ namespace HISP.Server
Logger.DebugPrint("Registered Real Time Quiz Category: " + name);
}
// Register Random Event
int totalRandomEvent = gameData.events.random_events.Count;
for (int i = 0; i < totalRandomEvent; i++)
{
int minmoney = 0;
int maxmoney = 0;
int lowerHorseHealth = 0;
int giveObj = 0;
int id = gameData.events.random_events[i].id;
string txt = gameData.events.random_events[i].text;
if(gameData.events.random_events[i].min_money != null)
minmoney = gameData.events.random_events[i].min_money;
if(gameData.events.random_events[i].max_money != null)
maxmoney = gameData.events.random_events[i].max_money;
if(gameData.events.random_events[i].lower_horse_health != null)
lowerHorseHealth = gameData.events.random_events[i].lower_horse_health;
if(gameData.events.random_events[i].give_object != null)
giveObj = gameData.events.random_events[i].give_object;
new RandomEvent(id, txt, minmoney, maxmoney, lowerHorseHealth, giveObj);
Logger.DebugPrint("Registered Random Event: " + txt);
}
HorseInfo.HorseNames = gameData.horses.names.ToObject<string[]>();
@ -964,6 +990,9 @@ namespace HISP.Server
// Message Queue
Messages.MessageQueueHeader = gameData.messages.message_queue;
// Random Event
Messages.RandomEventPrefix = gameData.messages.random_event_prefix;
// Events : Mods Revenge
Messages.EventStartModsRevenge = gameData.messages.events.mods_revenge.event_start;
Messages.EventEndModsRevenge = gameData.messages.events.mods_revenge.event_end;