Esempio n. 1
0
        public static NPCS.Npc CreatePinhata(PinhataPosition pin)
        {
            if (Lootorial.Instance.Config.PinhatasPositions.PinhatasParsed.TryGetValue(pin, out GameObject value) && value != null)
            {
                return(Player.Get(value).AsNPC());
            }

            var room = Map.Rooms.FirstOrDefault(x => x.Name == pin.Room);
            var pos  = room.Transform.TransformPoint(pin.Position);
            var dir  = room.Transform.TransformDirection(pin.Direction);
            var npc  = NPCS.Methods.CreateNPC(pos, dir, pin.Scale, pin.Role, ItemType.None, pin.Name);

            Timing.CallDelayed(0.5f, () =>
            {
                npc.NPCPlayer.Health    = pin.Health;
                npc.NPCPlayer.MaxHealth = (int)pin.Health;
                Lootorial.Instance.Config.PinhatasPositions.PinhatasParsed[pin] = npc.gameObject;
                for (int i = 0; i < Lootorial.Instance.Config.MaxItemsPerPinhata + 1; i++)
                {
                    var item = Rand.Next(0, Lootorial.Instance.Config.DroppableItems.Count);
                    npc.NPCPlayer.AddItem(Lootorial.Instance.Config.DroppableItems.ElementAt(item));
                }
            });

            return(npc);
        }
Esempio n. 2
0
        public static NPCS.Npc SpawnPinhata(PinhataPosition pin)
        {
            var npc = NPCS.Methods.CreateNPC(pin.Position, pin.Direction, pin.Scale, pin.Role, ItemType.None, pin.Name);

            Timing.CallDelayed(0.5f, () =>
            {
                npc.NPCPlayer.Health    = pin.Health;
                npc.NPCPlayer.MaxHealth = (int)pin.Health;
                for (int i = 0; i < Lootorial.Instance.Config.MaxItemsPerPinhata + 1; i++)
                {
                    var item = Rand.Next(0, Lootorial.Instance.Config.DroppableItems.Count);
                    npc.NPCPlayer.AddItem(Lootorial.Instance.Config.DroppableItems.ElementAt(item));
                }
            });

            return(npc);
        }