Esempio n. 1
0
        public override void DoAction(IEventArgs args)
        {
            if (index < list.Count)
            {
                for (int i = 0; i < 20; i++)
                {
                    ItemDrop drop = list[index++];
                    if (drop.cat == (int)ECategory.Vehicle)
                    {
                        VehicleEntityUtility.CreateNewVehicle(args.GameContext.vehicle, drop.id, args.GameContext.session.commonSession.EntityIdGenerator.GetNextEntityId(), GetGround(drop.pos));
                        break;
                    }
                    else
                    {
                        args.GameContext.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)drop.cat, drop.id, drop.count, GetGround(drop.pos));
                    }

                    List <ItemDrop> extra = SingletonManager.Get <FreeItemDrop>().GetExtraItems(drop);
                    foreach (ItemDrop e in extra)
                    {
                        args.GameContext.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)e.cat, e.id, e.count, GetGround(drop.pos));
                    }
                    if (index >= list.Count)
                    {
                        break;
                    }
                }
            }
        }
Esempio n. 2
0
        public override void DoAction(IEventArgs args)
        {
            UnitPosition up = pos.Select(args);

            Contexts con = args.GameContext;

            VehicleEntityUtility.CreateNewVehicle(con.vehicle, FreeUtil.ReplaceInt(carId, args),
                                                  con.session.commonSession.EntityIdGenerator.GetNextEntityId(),
                                                  map.position.UnityPositionUtil.ToVector3(up));
        }
        public void ExecuteCreateVehicle(Contexts contexts)
        {
            if (_vehicleCreateRequests.Count > 0)
            {
                var req         = _vehicleCreateRequests.Dequeue();
                var idGenerator = contexts.session.commonSession.EntityIdGenerator;

                for (int i = 0; i < req.Count; ++i)
                {
                    var id = idGenerator.GetNextEntityId();
                    VehicleEntityUtility.CreateNewVehicle(contexts.vehicle, req.VehicleId, id, req.Position);
                }
            }
        }
        public void OnGamePlay()
        {
            if (!loadConfig && dropList.IsEmpty())
            {
                foreach (MapConfigPoints.ID_Point point in MapConfigPoints.current.IDPints)
                {
                    dropList.AddRange(SingletonManager.Get <FreeItemDrop>().GetDropItems(point.ID, _contexts.session.commonSession.RoomInfo.MapId));
                }
                loadConfig = true;
            }

            if (loadConfig && dropList.IsEmpty())
            {
                return;
            }

            if (_contexts.player.count > 0 && !loadComplete)
            {
                if (index >= dropList.Count)
                {
                    loadComplete = true;
                    return;
                }
                for (int i = 0; i < 20; i++)
                {
                    ItemDrop drop = dropList[index++];
                    if (drop.cat == (int)ECategory.Vehicle)
                    {
                        VehicleEntityUtility.CreateNewVehicle(_contexts.vehicle, drop.id, _contexts.session.commonSession.EntityIdGenerator.GetNextEntityId(), GetGround(drop.pos));
                        break;
                    }
                    else
                    {
                        _contexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)drop.cat, drop.id, drop.count, GetGround(drop.pos));
                        List <ItemDrop> extra = SingletonManager.Get <FreeItemDrop>().GetExtraItems(drop);
                        foreach (ItemDrop e in extra)
                        {
                            _contexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)e.cat, e.id, e.count, GetGround(drop.pos));
                        }
                    }
                }
            }
        }