public static bool CheckFlag(FlagCode flag)
        {
            switch (flag)
            {
            case FlagCode.Ore:
                if (OreFound)
                {
                    OreFound = false;
                    return(true);
                }
                return(false);

            case FlagCode.Save:
                if (PleaseSave)
                {
                    PleaseSave = false;
                    return(true);
                }
                return(false);

            case FlagCode.UnlockMap:
                if (BlackSheepWall)
                {
                    BlackSheepWall = false;
                    return(true);
                }
                return(false);

            default:
                Randomizer.Log($"Unknown Flag code {flag}");
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// Undo any pending changes and revert back fields to the old ones.
        /// </summary>
        public void UndoPendingChanges()
        {
            foreach (Worker worker in Workers)
            {
                worker.Calls.Remove(this);
            }

            //THIS NEEDS WORK!
            if (_id == 0)
            {
                //its new so lets delete it!

                ServiceUser.Calls.Remove(this);

                CallManager.Instance.Calls.Remove(this);
            }
            else
            {
                idServiceUser    = (int)this.Old["idServiceUser"];
                duration_mins    = (int)this.Old["duration_mins"];
                required_workers = (int)this.Old["required_workers"];
                time             = (DateTime)this.Old["time"];
                flag             = (FlagCode)this.Old["flagcode"];
                notes            = (string)this.Old["notes"];
                traveltime_mins  = (int)this.Old["traveltime_mins"];

                Workers.Clear();
                Workers.AddRange(OldWorkers);
            }

            _markedForDeletion = false;

            _MarkForSave = false;
        }
示例#3
0
        public void From_To_Byte(FlagCode interruptFlagCode, OperationMode operationMode, byte expectedByte)
        {
            var canStat = new CanStat(interruptFlagCode, operationMode);

            Assert.Equal(interruptFlagCode, canStat.InterruptFlagCode);
            Assert.Equal(operationMode, canStat.OperationMode);
            Assert.Equal(expectedByte, canStat.ToByte());
            Assert.Equal(expectedByte, new CanStat(expectedByte).ToByte());
        }
示例#4
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Call()
        {
            this.required_workers = 1;
            this.traveltime_mins  = 0;
            this._workers         = null;

            this.flag = FlagCode.None;

            this._markedForDeletion = false;
            this._MarkForSave       = true;

            this.Old        = new Dictionary <string, object>();
            this.OldWorkers = new List <Worker>();

            this.SaveMarkerChanged  += Call_SaveMarkerChanged;
            this.SaveMarkerChanging += Call_SaveMarkerChanging;
        }
    public CodeData CreateCodeData(TextCovertedData data, EventCodeScriptable scr)
    {
        if (data == null)
        {
            return(new EndCode());
        }
        if (CheckChain(data))
        {
            return(this);
        }
        CodeData result = null;

        switch (data._head)
        {
        case "":
        case "name":    //name[name]
            result = new TextData(data);
            break;

        case "branch":    //branch \nbranchName \n $#1...
            result = new BranchCode(data);
            break;

        case "flag":    //flag[flagName] 5
            result = new FlagCode(data);
            break;

        case "item":    //item[itemName] 1
            result = new ItemCode(data);
            break;

        case "map":    //map[mapName]
            result = new MapCode(data);
            break;

        case "image":    //image[setName,num] back (center)
            result = new ImageCode(data);
            break;

        case "music":    //music[setName,0]
            result = new AudioCode(data);
            break;

        case "battle":    //battle[enemySetName]
            result = new BattleCode(data);
            break;

        case "load":    //load[black] 500
            result = new LoadCode(data);
            break;

        case "wait":    //wait[500]
            result = new WaitCode(data);
            break;

        default:
            return(null);
        }
        result._targetScr = scr;
        return(result);
    }
示例#6
0
 /// <summary>
 /// Initializes a new instance of the CanStat class.
 /// </summary>
 /// <param name="interruptFlagCode">ICOD[2:0]: Interrupt Flag Code bits.</param>
 /// <param name="operationMode">OPMOD[2:0]: Operation Mode bits.</param>
 public CanStat(FlagCode interruptFlagCode, OperationMode operationMode)
 {
     InterruptFlagCode = interruptFlagCode;
     OperationMode     = operationMode;
 }