Example #1
0
 public static void Execute(PowerOption option)
 {
     if (option == PowerOption.Sleep)
     {
         SetSuspendState(false, true, true);
         return;
     }
     else if (option == PowerOption.Hibernate)
     {
         SetSuspendState(true, true, true);
         return;
     }
     else
     {
         bool         ok;
         TokPriv1Luid tp;
         IntPtr       hproc = GetCurrentProcess();
         IntPtr       htok  = IntPtr.Zero;
         ok       = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
         tp.Count = 1;
         tp.Luid  = 0;
         tp.Attr  = SE_PRIVILEGE_ENABLED;
         ok       = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid);
         ok       = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
         ok       = ExitWindowsEx((int)option, 0);
     }
 }
Example #2
0
        public static PlayerTask CreatePlayerTaskOption(Game game, PowerOption powerOption, int sendOptionTarget, int sendOptionPosition, int sendOptionSubOption)
        {
            //var allOptions = _game.AllOptionsMap[sendOptionId];
            //var tasks = allOptions.PlayerTaskList;
            //var powerOption = allOptions.PowerOptionList[sendOptionMainOption];
            var optionType = powerOption.OptionType;

            PlayerTask task = null;

            switch (optionType)
            {
            case OptionType.END_TURN:
                task = EndTurnTask.Any(game.CurrentPlayer);
                break;

            case OptionType.POWER:
                var mainOption = powerOption.MainOption;
                var source     = game.IdEntityDic[mainOption.EntityId];
                var target     = sendOptionTarget > 0 ? (ICharacter)game.IdEntityDic[sendOptionTarget] : null;
                var subObtions = powerOption.SubOptions;

                if (source.Zone?.Type == Zone.PLAY)
                {
                    task = MinionAttackTask.Any(game.CurrentPlayer, source, target);
                }
                else
                {
                    switch (source.Card.Type)
                    {
                    case CardType.HERO:
                        task = target != null
                                    ? (PlayerTask)HeroAttackTask.Any(game.CurrentPlayer, target)
                                    : PlayCardTask.Any(game.CurrentPlayer, source);
                        break;

                    case CardType.HERO_POWER:
                        task = HeroPowerTask.Any(game.CurrentPlayer, target);
                        break;

                    default:
                        task = PlayCardTask.Any(game.CurrentPlayer, source, target, sendOptionPosition, sendOptionSubOption);
                        break;
                    }
                }
                break;

            case OptionType.PASS:
                break;

            default:
                throw new NotImplementedException();
            }

            //Log.Info($"{task?.FullPrint()}");

            return(task);
        }
        private ToolStripMenuItem CreateMenuItem(PowerOption aOpt, bool IsActive)
        {
            var item = new ToolStripMenuItem(aOpt.Name);

            item.Checked = IsActive;

            item.Click += delegate(object sender, EventArgs args)
            {
                this.manager.SetPowerOption(aOpt);
            };

            return(item);
        }
Example #4
0
        public KettleOption(PowerOption option)
        {
            Type = (int)option.OptionType;

            if (option.MainOption != null)
            {
                MainOption = new KettleSubOption(option.MainOption);
            }

            SubOptions = new List <KettleSubOption>();
            foreach (var sub in option.SubOptions)
            {
                SubOptions.Add(new KettleSubOption(sub));
            }
        }
Example #5
0
        public override object VisitHsOption(HSGrammarParser.HsOptionContext context)
        {
            PowerOption powerOption = new PowerOption();

            powerOption.Id   = int.Parse(context.INT().GetText());
            powerOption.Type = context.VALUE().GetText();
            if (context.hsEntityObject() != null)
            {
                powerOption.Entitiy          = new PowerEntity();
                powerOption.Entitiy.EntityId = (int)VisitHsEntityObject(context.hsEntityObject());
            }
            foreach (var subOption in context.hsSubOption())
            {
                powerOption.SubOptions.Add((PowerSubOption)VisitHsSubOption(subOption));
            }
            foreach (var target in context.hsTarget())
            {
                powerOption.Targets.Add((PowerTarget)VisitHsTarget(target));
            }

            return(powerOption);
        }
Example #6
0
 public static string ResponseClientGamePowerOption(int id, string token, int gameId, PowerOption powerOption)
 {
     return(JsonConvert.SerializeObject(new DataPacket()
     {
         Id = id,
         Token = token,
         SendData = JsonConvert.SerializeObject(
             new SendData
         {
             MessageType = MessageType.Game,
             MessageData = JsonConvert.SerializeObject(
                 new GameData
             {
                 GameId = gameId,
                 GameMessageType = GameMessageType.GameResponse,
                 GameMessageData = JsonConvert.SerializeObject(
                     new GameResponse
                 {
                     RequestState = RequestState.Success,
                     GameResponseType = GameResponseType.Preparation,
                     GameResponseData = JsonConvert.SerializeObject(
                         new GameResponsePowerOption
                     {
                         PowerOption = powerOption
                     })
                 })
             })
         })
     }));
 }