private void RespawnTree(GameObjectInstance tree) { var obj = GameData.GetGameObject(tree.ObjectId); tree.Type = obj.Type; World.UpdateObject(tree); }
public void Hide() { if (GameObjectInstance != null) { GameObjectInstance.SetActive(false); } }
public void InstantiateGameObject() { GameObjectInstance = (GameObject)Instantiate(Resources.Load("Prefabs/" + "buyButton")); GameObjectInstance.AddComponent <BoxCollider2D>(); GameObjectInstance.AddComponent <PurchaseEventHandler>(); XPos = GameObjectInstance.transform.position.x; YPos = GameObjectInstance.transform.position.y; }
public void Show() { if (GameObjectInstance != null) { GameObjectInstance.SetActive(true); MenuSytleAdapter.UpdateContainerColor(); } }
public static ObjectAdd Create(GameObjectInstance obj, Transform transform) { return(new ObjectAdd { ObjectServerId = obj.Id, ObjectId = obj.Type, Position = transform.GetPosition() }); }
public EntityActionInvoker GetAction(GameObjectInstance obj, int actionId) { var type = gameData.GetGameObject(obj.ObjectId).Type; if (entityActions.TryGetValue(type, out var actions)) { return(actions.Select(x => x.Value).FirstOrDefault(x => x.Id == actionId)); } return(null); }
public ItemDrop[] GetItemDrops(GameObjectInstance obj) { var type = gameData.GetGameObject(obj.ObjectId).Type; if (objectItemDrops.TryGetValue(type, out var drops)) { return(drops); } return(new ItemDrop[0]); }
public void UpdateObject(GameObjectInstance obj) { var session = sessions.Get(obj); var gobj = gameData.GetGameObject(obj.ObjectId); var transform = gameData.GetTransform(gobj.TransformId); foreach (var playerConnection in connectionProvider.GetAllActivePlayerConnections(session)) { playerConnection.Send(ObjectUpdate.Create(obj, transform, gobj.Static), SendOption.Reliable); } }
public GameObjectInstance CreateGameObjectInstance() { var id = GetNextId(objectInstances.Entities); var obj = new GameObjectInstance() { Id = id }; Add(obj); return(obj); }
protected bool HandleObjectTick(Player player, GameObjectInstance obj, TimeSpan totalTime, TimeSpan deltaTime) { var session = Sessions.Get(player); if (!session.Objects.HasAcquiredLock(obj, player)) { StopAnimation(player, obj); return(true); } var skillLevel = statsProvider.GetLevel(player.Id, skillName); var chance = 0.05f + skillLevel * 0.05f; if (random.NextDouble() <= chance) { StartAnimation(player, obj); return(false); } var gobj = GameData.GetGameObject(obj.ObjectId); var levelsGaiend = statsProvider.AddExperience(player.Id, skillName, gobj.Experience); var itemDrops = session.Objects.GetItemDrops(obj); foreach (var itemDrop in itemDrops) { if (random.NextDouble() > itemDrop.DropChance) { continue; } World.AddPlayerItem(player, GameData.GetItem(itemDrop.ItemId)); } var exp = statsProvider.GetExperience(player.Id, skillName); World.UpdatePlayerStat(player, skillName, skillLevel + levelsGaiend, exp); if (levelsGaiend > 0) { World.PlayerStatLevelUp(player, skillName, levelsGaiend); } StopAnimation(player, obj); if (AfterAction != null) { AfterAction?.Invoke(this, new AfterActionEventArgs(player, obj)); } return(true); }
public void PlayerObjectInteraction( Player player, GameObjectInstance obj, EntityActionInvoker action, int parameterId) { // use if (action.Invoke(player, obj, parameterId)) { foreach (var playerConnection in connectionProvider.GetAll()) { playerConnection.Send(new PlayerObjectActionResponse { PlayerId = player.Id, ActionId = action.Id, ObjectServerId = obj.Id, ParameterId = parameterId, Status = 1 // 0: fail, 1: success }, SendOption.Reliable); } } }
protected void StopAnimation(Player player, GameObjectInstance obj) { var session = Sessions.Get(player); var gobj = GameData.GetGameObject(obj.ObjectId); var inventory = inventoryProvider.GetInventory(player.Id); var requiredItem = inventory.GetItemOfType(gobj.InteractItemType); if (requiredItem != null) { var reqItem = GameData.GetItem(requiredItem.ItemId); if (reqItem.Equippable) { World.SetItemEquipState(player, reqItem, false); } if (reqItem.Consumable) { World.RemovePlayerItem(player, reqItem); } World.PlayAnimation(player, skillName, false); } session.Objects.ReleaseLocks(player); }
public void Add(GameObjectInstance entity) => Update(() => objectInstances.Add(entity));
private void MakeTreeStump(GameObjectInstance tree) { tree.Type = 0; World.UpdateObject(tree); kernel.SetTimeout(() => RespawnTree(tree), GameData.GetGameObject(tree.ObjectId).RespawnMilliseconds); }
protected void StartAnimation(Player player, GameObjectInstance obj) { World.PlayAnimation(player, skillName, true, true); World.SetEntityTimeout(actionTime, player, obj, HandleObjectTick); }
public void Remove(GameObjectInstance obj) => objectInstances.Remove(obj);
public AfterActionEventArgs(Player player, GameObjectInstance obj) { this.Player = player; this.Object = obj; }
public void Update(GameObjectInstance obj, IGameSession session, TimeSpan deltaTime) { }