예제 #1
0
    public override void Init(bool defaultStats = false)
    {
        base.Init(defaultStats);

        if (defaultStats)
        {
            maxHealth     = 10;
            health        = 10;
            defense       = 4;
            physAtk       = 5;
            energyAtk     = 10;
            speed         = 4;
            movementRange = 4;

            // WEAPON(S):
            weapons = new List <Weapon>();

            Weapon rifle = new Rifle(this);
            weapons.Add(rifle);
            Equip(rifle);
            Weapon beamsword = new BeamSword(this);
            weapons.Add(beamsword);
            Equip(beamsword);
            Weapon frag = new Frag(this);
            weapons.Add(frag);
            //weapons.Add(new LaserCannon(this));
            //weapons.Add(new PhotonEqualizer(this));
            //weapons.Add(new EnergyChain(this));
        }

        UpdateStats();
    }
예제 #2
0
 public override void ReadImplement()
 {
     kills.killingType = (CharaKillTypeEnum)ReadByte();
     kills.killsCount  = ReadByte();
     kills.killerIdx   = ReadByte();
     kills.weaponId    = ReadInt();
     kills.x           = ReadFloat();
     kills.y           = ReadFloat();
     kills.z           = ReadFloat();
     kills.flag        = ReadByte();
     for (int i = 0; i < kills.killsCount; i++)
     {
         Frag frag = new Frag
         {
             victimWeaponClass = ReadByte()
         };
         frag.SetHitspotInfo(ReadByte());
         ReadShort();
         frag.flag = ReadByte();
         frag.x    = ReadFloat();
         frag.y    = ReadFloat();
         frag.z    = ReadFloat();
         kills.frags.Add(frag);
         if (frag.VictimSlot == kills.killerIdx)
         {
             isSuicide = true;
         }
     }
 }
예제 #3
0
 public async Task Delete(Frag item)
 {
     var toDelete = (await firebase
                     .Child("Frags")
                     .OnceAsync <Frag>()).Where(a => a.Key == item.Id).FirstOrDefault();
     await firebase.Child("Frags").Child(toDelete.Key).DeleteAsync();
 }
예제 #4
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // Returns a no-op fragment.  Sometimes unavoidable.
        private Frag nop()
        {
            Frag f = newInst(Inst.InstOp.NOP);

            f.@out = f.i << 1;
            return(f);
        }
예제 #5
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // flags : parser flags
        private Frag rune(int[] runes, int flags)
        {
            Frag f = newInst(Inst.InstOp.RUNE);
            Inst i = prog.getInst(f.i);

            i.runes = runes;
            flags  &= RE2.FOLD_CASE; // only relevant flag is FoldCase
            if (runes.Length != 1 || Unicode.simpleFold(runes[0]) == runes[0])
            {
                flags &= ~RE2.FOLD_CASE; // and sometimes not even that
            }

            i.arg  = flags;
            f.@out = f.i << 1;
            // Special cases for exec machine.
            if (((flags & RE2.FOLD_CASE) == 0 && runes.Length == 1) ||
                (runes.Length == 2 && runes[0] == runes[1]))
            {
                i.op = Inst.InstOp.RUNE1;
            }
            else if (runes.Length == 2 && runes[0] == 0 && runes[1] == Unicode.MAX_RUNE)
            {
                i.op = Inst.InstOp.RUNE_ANY;
            }
            else if (runes.Length == 4 &&
                     runes[0] == 0 &&
                     runes[1] == '\n' - 1 &&
                     runes[2] == '\n' + 1 &&
                     runes[3] == Unicode.MAX_RUNE)
            {
                i.op = Inst.InstOp.RUNE_ANY_NOT_NL;
            }

            return(f);
        }
예제 #6
0
 public override void read()
 {
     this.kills.killingType = (CharaKillType)this.readC();
     this.kills.killsCount  = this.readC();
     this.kills.killerIdx   = this.readC();
     this.kills.weapon      = this.readD();
     this.kills.x           = this.readT();
     this.kills.y           = this.readT();
     this.kills.z           = this.readT();
     this.kills.flag        = this.readC();
     for (int index = 0; index < (int)this.kills.killsCount; ++index)
     {
         Frag frag = new Frag();
         frag.victimWeaponClass = this.readC();
         frag.SetHitspotInfo(this.readC());
         int num = (int)this.readH();
         frag.flag = this.readC();
         frag.x    = this.readT();
         frag.y    = this.readT();
         frag.z    = this.readT();
         this.kills.frags.Add(frag);
         if (frag.VictimSlot == (int)this.kills.killerIdx)
         {
             this.isSuicide = true;
         }
     }
 }
 public override void read()
 {
     kills.killingType = (CharaKillType)readC();
     kills.killsCount  = readC();
     kills.killerIdx   = readC();
     kills.weapon      = readD();
     kills.x           = readT();
     kills.y           = readT();
     kills.z           = readT();
     kills.flag        = readC();
     for (int i = 0; i < kills.killsCount; i++)
     {
         Frag frag = new Frag();
         frag.victimWeaponClass = readC();
         frag.SetHitspotInfo(readC());
         readH();
         frag.flag = readC();
         frag.x    = readT();
         frag.y    = readT();
         frag.z    = readT();
         kills.frags.Add(frag);
         if (frag.VictimSlot == kills.killerIdx)
         {
             isSuicide = true;
         }
     }
 }
예제 #8
0
        protected internal override void read()
        {
            this._kills = new FragInfos();
            int num = (int)base.readH();

            this._kills.victimIdx  = (int)base.readC();
            this._kills.killsCount = (int)base.readC();
            this._kills.killerIdx  = (int)base.readC();
            this._kills.weapon     = base.readD();
            this._kills.bytes13    = base.readB(13);
            int num2 = this._kills.killsCount - 1;

            for (int i = 0; i <= num2; i++)
            {
                Frag item = new Frag
                {
                    unk_c_1    = (int)base.readC(),
                    hitspotNum = (int)base.readC(),
                    unk_c_3    = (int)base.readC(),
                    unk_c_4    = (int)base.readC(),
                    bytes131   = base.readB(13)
                };
                this._kills.frags.Add(item);
            }
        }
 public void OnResumeCustom()
 {
     if (Frag != null)
     {
         Frag.OnResumeCustom();
     }
 }
예제 #10
0
 public string Solve(Frag fragment)
 {
     if (fragment.isValue)
     {
         return(value);
     }
     else if (fragment.isOperation)
     {
         if (fragment.operation.Equals("+"))
         {
             return((
                        double.Parse(Solve(linkL))
                        + double.Parse(Solve(linkR)))
                    + "");        //Calculate then turn into a string
         }
         else if (fragment.operation.Equals("-"))
         {
             return((
                        double.Parse(Solve(linkL))
                        - double.Parse(Solve(linkR)))
                    + "");
         }
         else if (fragment.operation.Equals("*"))
         {
             return((
                        double.Parse(Solve(linkL))
                        * double.Parse(Solve(linkR)))
                    + "");
         }
         else if (fragment.operation.Equals("/"))
         {
             return((
                        double.Parse(Solve(linkL))
                        / double.Parse(Solve(linkR)))
                    + "");
         }
         else if (fragment.operation.Equals("^"))
         {
             return(System.Math.Pow(
                        double.Parse(Solve(linkL)),
                        double.Parse(Solve(linkR)))
                    + "");
         }
         else
         {
             Debug.Log("Frag.Solve() issue 2");
             return(null);
         }
     }
     else if (fragment.isEnclosure)
     {
         return(Solve(fragment));
     }
     else
     {
         Debug.Log("Frag.Solve() issue");
         return(null);
     }
 }
예제 #11
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // op is a bitmask of EMPTY_* flags.
        private Frag empty(int op)
        {
            Frag f = newInst(Inst.InstOp.EMPTY_WIDTH);

            prog.getInst(f.i).arg = op;
            f.@out = f.i << 1;
            return(f);
        }
예제 #12
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        public static Prog compileRegexp(Regexp re)
        {
            Compiler c = new Compiler();
            Frag     f = c.compile(re);

            c.prog.patch(f.@out, c.newInst(Inst.InstOp.MATCH).i);
            c.prog.start = f.i;
            return(c.prog);
        }
예제 #13
0
 public override void write()
 {
     this.writeH((short)3355);
     this.writeC((byte)this.kills.killingType);
     this.writeC(this.kills.killsCount);
     this.writeC(this.kills.killerIdx);
     this.writeD(this.kills.weapon);
     this.writeT(this.kills.x);
     this.writeT(this.kills.y);
     this.writeT(this.kills.z);
     this.writeC(this.kills.flag);
     for (int index = 0; index < this.kills.frags.Count; ++index)
     {
         Frag frag = this.kills.frags[index];
         this.writeC(frag.victimWeaponClass);
         this.writeC(frag.hitspotInfo);
         this.writeH((short)frag.killFlag);
         this.writeC(frag.flag);
         this.writeT(frag.x);
         this.writeT(frag.y);
         this.writeT(frag.z);
     }
     this.writeH((short)this.room._redKills);
     this.writeH((short)this.room._redDeaths);
     this.writeH((short)this.room._blueKills);
     this.writeH((short)this.room._blueDeaths);
     for (int index = 0; index < 16; ++index)
     {
         SLOT slot = this.room._slots[index];
         this.writeH((short)slot.allKills);
         this.writeH((short)slot.allDeaths);
     }
     if (this.killer.killsOnLife == 2)
     {
         this.writeC((byte)1);
     }
     else if (this.killer.killsOnLife == 3)
     {
         this.writeC((byte)2);
     }
     else if (this.killer.killsOnLife > 3)
     {
         this.writeC((byte)3);
     }
     else
     {
         this.writeC((byte)0);
     }
     this.writeH((ushort)this.kills.Score);
     if (this.room.room_type != (byte)7)
     {
         return;
     }
     this.writeH((ushort)this.room.red_dino);
     this.writeH((ushort)this.room.blue_dino);
 }
예제 #14
0
        public async Task <Frag> GetFiltered(Frag item)
        {
            var all = await GetAll();

            await firebase
            .Child("Frags")
            .OnceAsync <Frag>();

            return(all.Where(a => a.Estatus == item.Estatus).FirstOrDefault());
        }
예제 #15
0
        public async Task <Frag> GetOne(Frag item)
        {
            var all = await GetAll();

            await firebase
            .Child("Frags")
            .OnceAsync <Frag>();

            return(all.Where(a => a.Id == item.Id).FirstOrDefault());
        }
예제 #16
0
 public override void Write()
 {
     WriteH(3355);
     WriteC((byte)kills.killingType);
     WriteC(kills.killsCount);
     WriteC(kills.killerIdx);
     WriteD(kills.weaponId);
     WriteT(kills.x);
     WriteT(kills.y);
     WriteT(kills.z);
     WriteC(kills.flag);
     for (int i = 0; i < kills.frags.Count; i++)
     {
         Frag frag = kills.frags[i];
         WriteC(frag.victimWeaponClass);
         WriteC(frag.hitspotInfo);
         WriteH((short)frag.killFlag);
         WriteC(frag.flag);
         WriteT(frag.x);
         WriteT(frag.y);
         WriteT(frag.z);
     }
     WriteH(room.redKills);
     WriteH(room.redDeaths);
     WriteH(room.blueKills);
     WriteH(room.blueDeaths);
     for (int i = 0; i < 16; i++)
     {
         Slot slot = room.slots[i];
         WriteH(slot.allKills);
         WriteH(slot.allDeaths);
     }
     if (killer.killsOnLife == 2)
     {
         WriteC(1);
     }
     else if (killer.killsOnLife == 3)
     {
         WriteC(2);
     }
     else if (killer.killsOnLife > 3)
     {
         WriteC(3);
     }
     else
     {
         WriteC(0);
     }
     WriteH(kills.Score);
     if (room.mode == RoomTypeEnum.Dino)
     {
         WriteH(room.redDino);
         WriteH(room.blueDino);
     }
 }
 public override void write()
 {
     writeH(3355);
     writeC((byte)kills.killingType);
     writeC(kills.killsCount);
     writeC(kills.killerIdx);
     writeD(kills.weapon);
     writeT(kills.x);
     writeT(kills.y);
     writeT(kills.z);
     writeC(kills.flag);
     for (int i = 0; i < kills.frags.Count; i++)
     {
         Frag frag = kills.frags[i];
         writeC(frag.victimWeaponClass);
         writeC(frag.hitspotInfo);
         writeH((short)frag.killFlag);
         writeC(frag.flag);
         writeT(frag.x);
         writeT(frag.y);
         writeT(frag.z);
     }
     writeH((short)room._redKills);
     writeH((short)room._redDeaths);
     writeH((short)room._blueKills);
     writeH((short)room._blueDeaths);
     for (int i = 0; i < 16; i++)
     {
         SLOT slot = room._slots[i];
         writeH((short)slot.allKills);
         writeH((short)slot.allDeaths);
     }
     if (killer.killsOnLife == 2)
     {
         writeC(1);
     }
     else if (killer.killsOnLife == 3)
     {
         writeC(2);
     }
     else if (killer.killsOnLife > 3)
     {
         writeC(3);
     }
     else
     {
         writeC(0);
     }
     writeH((ushort)kills.Score);
     if ((RoomType)room.room_type == RoomType.Boss)
     {
         writeH((ushort)room.red_dino);
         writeH((ushort)room.blue_dino);
     }
 }
예제 #18
0
 private void initialize(Frag parent, Vector3 direction, Quaternion orientation)
 {
     mesh                    = parent.mesh;
     material                = parent.material;
     depth                   = parent.depth + 1;
     maxDepth                = parent.maxDepth;
     transform.parent        = parent.transform;
     childScale              = parent.childScale;
     transform.localScale    = Vector3.one * childScale;
     transform.localPosition = direction * (0.5f + 0.5f * childScale);
     transform.localRotation = orientation;
 }
예제 #19
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // Given fragments a and b, returns ab; a|b
        private Frag cat(Frag f1, Frag f2)
        {
            // concat of failure is failure
            if (f1.i == 0 || f2.i == 0)
            {
                return(fail());
            }

            // TODO(rsc): elide nop
            prog.patch(f1.@out, f2.i);
            return(new Frag(f1.i, f2.@out));
        }
예제 #20
0
 public Nuevo(Frag frag = null)
 {
     try
     {
         InitializeComponent();
     }
     catch (Exception ex)
     {
         Logger.Error(ex, "Error al registrar una venta : BtnGuardarVenta_Clicked");
         DisplayAlert("Error ", ex.Message, "OK");
     }
 }
예제 #21
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // Given fragment a, returns (a) capturing as \n.
        // Given a fragment a, returns a fragment with capturing parens around a.
        private Frag cap(int arg)
        {
            Frag f = newInst(Inst.InstOp.CAPTURE);

            f.@out = f.i << 1;
            prog.getInst(f.i).arg = arg;
            if (prog.numCap < arg + 1)
            {
                prog.numCap = arg + 1;
            }

            return(f);
        }
예제 #22
0
 //value
 public Frag(string val, int newDepth)
 {
     isRoot      = false;
     isValue     = true;
     isOperation = false;
     isEnclosure = false;
     value       = val;
     operation   = null;
     linkL       = null;
     linkR       = null;
     openPos     = -1;
     closePos    = -1;
 }
예제 #23
0
 //default
 public Frag()
 {
     isRoot      = false;
     isValue     = false;
     isOperation = false;
     isEnclosure = false;
     depth       = -1;
     value       = "default";
     operation   = null;
     linkL       = null;
     linkR       = null;
     openPos     = -1;
     closePos    = -1;
 }
예제 #24
0
 //operation
 public Frag(string op, int newDepth, Frag left, Frag right)
 {
     isRoot      = false;
     isValue     = false;
     isOperation = true;
     isEnclosure = false;
     depth       = newDepth;
     value       = null;
     operation   = op;
     linkL       = left;
     linkR       = right;
     openPos     = -1;
     closePos    = -1;
 }
예제 #25
0
 //enclosure
 public Frag(int newDepth, string op, Frag left, Frag right, int openParenthesis, int closeParenthesis)
 {
     isRoot      = false;
     isValue     = false;
     isOperation = false;
     isEnclosure = true;
     depth       = newDepth;
     value       = null;
     operation   = op;
     linkL       = left;
     linkR       = right;
     openPos     = -1;
     closePos    = -1;
 }
예제 #26
0
        public void testFrag()
        {
            string     weapon   = "usp_silencer";
            string     headShot = $"L 13:37 spam: \"Prince<12><STEAM_1:1:123338101><CT>\" [2264 19 128] killed \"Bot<11><STEAM_1:0:123371565><TERRORIST>\" [1938 -198 320] with \"{weapon}\" (headshot)";
            string     kill     = $"L 13:37 spam: \"Prince<12><STEAM_1:1:123338101><CT>\" [2264 19 128] killed \"Bot<11><STEAM_1:0:123371565><TERRORIST>\" [1938 -198 320] with \"{weapon}\"";
            FragParser parser   = new FragParser();

            Assert.IsTrue(parser.IsMatch(headShot));
            Assert.IsTrue(parser.IsMatch(kill));
            Frag hsFarg = parser.Parse(headShot);
            Frag frag   = parser.Parse(kill);

            Assert.IsTrue(hsFarg.Headshot);
            Assert.IsFalse(frag.Headshot);
            Assert.AreEqual(frag.Weapon, weapon);
        }
예제 #27
0
        protected virtual void eventsManager_PlayerKilled(object sender, PlayerKilledEventArgs e)
        {
            if (game.IsStarted)
            {
                Frag frag = new Frag();
                frag.Killer     = game.GetPlayer(e.Killer.SteamID);
                frag.Victim     = game.GetPlayer(e.Victim.SteamID);
                frag.Assist     = (e.Assist != null) ? game.GetPlayer(e.Assist.SteamID) : null;
                frag.Headshot   = e.Headshot;
                frag.Penetrated = (e.PenetratedObjects > 0) ? true : false;
                frag.Weapon     = e.Weapon.OriginalString;

                game.Rounds.Last().Frags.Add(frag);
                game.GetPlayer(e.Killer.SteamID).Frags.Add(frag);
                game.Frags.Add(frag);
            }
        }
예제 #28
0
    // Use this for initialization
    void Start()
    {
        root = new Frag("*", 0);
        if (eqTree == null)
        {
            Debug.Log("Should be null right now.");
        }
        eqTree = new EquationTree <Frag> (root, true);
        if (eqTree == null)
        {
            Debug.Log("I wonder why it's still null.");
        }

        eqTree.node.ConnectLeft(new Frag("+", 1));
        eqTree.node.linkL.ConnectLeft(new Frag("/", 2));
        eqTree.node.linkL.linkL.ConnectLeft(new Frag("2", 3));
        eqTree.node.linkL.linkL.ConnectRight(new Frag("5", 3));
        eqTree.node.linkL.ConnectRight(new Frag("7", 2));
        eqTree.node.ConnectRight(new Frag("*", 1));
        eqTree.node.linkR.ConnectLeft(new Frag("-", 2));
        eqTree.node.linkR.linkL.ConnectLeft(new Frag("4", 3));
        eqTree.node.linkR.linkL.ConnectRight(new Frag("3", 3));
        eqTree.node.linkR.ConnectRight(new Frag("/", 2));
        eqTree.node.linkR.linkR.ConnectLeft(new Frag("+", 3));
        eqTree.node.linkR.linkR.linkL.ConnectLeft(new Frag("2", 4));
        eqTree.node.linkR.linkR.linkL.ConnectRight(new Frag("1", 4));
        eqTree.node.linkR.linkR.ConnectRight(new Frag("5", 3));


//		eqTree.AddChild(new Frag("1", 1));//every add child pushes previous ones lower
//		eqTree.AddChild(new Frag("2", 2));
//		eqTree.AddChild (new Frag ("3", 3));
//		eqTree.AddChild(new Frag("7", 7));
//		eqTree.AddChild(new Frag("11", 11));
//		for (int i = 0; i < 10; i++) {
//			if (eqTree.GetChild (i) == null) {
//				Debug.Log ("eqTree at " + i + " is null.");
//			} else {
//				Debug.Log ("eqTree at " + i + " is " + eqTree.GetChild(i).GetData().value);//eqTree.GetChild returns an EquationTree<Frag> not a Frag
//			}
//		}

        Debug.Log("Rightmost leaf is: " + eqTree.node.linkR.linkR.linkR.value);
    }
예제 #29
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // Given a fragment a, returns a fragment for a* or a*? (if nongreedy)
        private Frag star(Frag f1, bool nongreedy)
        {
            Frag f = newInst(Inst.InstOp.ALT);
            Inst i = prog.getInst(f.i);

            if (nongreedy)
            {
                i.arg  = f1.i;
                f.@out = f.i << 1;
            }
            else
            {
                i.@out = f1.i;
                f.@out = f.i << 1 | 1;
            }

            prog.patch(f1.@out, f.i);
            return(f);
        }
예제 #30
0
파일: Compiler.cs 프로젝트: kaby76/re2cs
        // Given a fragment for a, returns a fragment for a? or a?? (if nongreedy)
        private Frag quest(Frag f1, bool nongreedy)
        {
            Frag f = newInst(Inst.InstOp.ALT);
            Inst i = prog.getInst(f.i);

            if (nongreedy)
            {
                i.arg  = f1.i;
                f.@out = f.i << 1;
            }
            else
            {
                i.@out = f1.i;
                f.@out = f.i << 1 | 1;
            }

            f.@out = prog.append(f.@out, f1.@out);
            return(f);
        }
예제 #31
0
 public void AddFrag(Frag frag)
 {
     frag.Next = Frags;
     Frags = frag;
 }