コード例 #1
0
        public void EnqueueProductionMissionTarget(MissionTargetType targetType, Character character, int locationId, int?definition = null, int?quantity = null)
        {
            if (locationId <= 0)
            {
                return;                  //gamma or something unknown
            }
            Logger.Info("++ Enqueue mission target type " + targetType + " characterId:" + character.Id + " definition:" + definition + " quantity:" + quantity);

            var data = new Dictionary <string, object>
            {
                { k.characterID, character.Id },
                { k.type, targetType },
                { k.locationID, locationId },
                { k.useGang, 1 }   //spread this action to gang within the mission engine
            };

            if (definition != null)
            {
                data.Add(k.definition, (int)definition);
            }

            if (quantity != null)
            {
                data.Add(k.quantity, (int)quantity);
            }

            _missionProcessor.EnqueueMissionTargetAsync(data);
        }
コード例 #2
0
        public static void MissionAdvanceDockInTarget(int characterId, int zoneId, Position position)
        {
            var data = new Dictionary <string, object>
            {
                { k.type, MissionTargetType.dock_in },
                { k.zoneID, zoneId },
                { k.position, position },
                { k.characterID, characterId },
                { k.completed, true },
            };

            MissionProcessor.EnqueueMissionTargetAsync(data);
            Logger.Info(">>>>>> dock in mission target sent to mission engine for character: " + characterId + " " + zoneId + " position: " + position.ToDoubleString2D());
        }
コード例 #3
0
 /// <summary>
 /// Informs the mission engine that a certain target is delivered
 /// </summary>
 public void EnqueueProgressInfo()
 {
     _missionProcessor.EnqueueMissionTargetAsync(missionOwnerCharacter, MissionTargetType.fetch_item, AddKeys);
 }