コード例 #1
0
        public bool BuyItem(NetConnection <NetSession> sender, ItemPurchaseRequest request)
        {
            if (VerifyTransaction(sender, request))
            {
                ShopItemDefine define = DataManager.Instance.ShopItems[request.shopID][request.shopItemID];

                sender.Session.Character.ItemManager.AddItem(define.ItemID, request.Amount);

                //additem notify
                NStatus status = new NStatus();
                status.Type   = StatusType.Item;
                status.Action = StatusAction.Add;
                status.Id     = define.ItemID;
                status.Value  = request.Amount;
                Console.WriteLine("purchase one unit of " + define.ItemID);
                if (sender.Session.Response.Notifies == null)
                {
                    sender.Session.Response.Notifies = new StatusNotify();
                }
                sender.Session.Response.Notifies.Status.Add(status);

                //deduct money notify
                status        = new NStatus();
                status.Type   = StatusType.Money;
                status.Action = StatusAction.Remove;
                status.Id     = -1;
                status.Value  = define.Price;
                sender.Session.Response.Notifies.Status.Add(status);

                return(true);
            }

            return(false);
        }
コード例 #2
0
    public void Mounted(Transform col)
    {
        print("mounted");
        if (damselStatus)
        {
            damselStatus = false;
            status       = NStatus.IDLE;
            playerCtrl   = col.GetComponent <PlayerControl>();

            anim.Play("Nurse_Idle");
            //GetComponent<PolygonCollider2D>().enabled = true;
            GetComponent <Rigidbody2D>().isKinematic = false;

            gameObject.layer = LayerMask.NameToLayer("Nurse");
            var t = transform.position;
            t.z = 0;
            transform.position = t;
            playerCtrl.GetNurseFeet(transform.Find("nurse_body").Find("nurse_booty").Find("bob_footL"), transform.Find("nurse_body").Find("bob_footR"));
        }
        gameObject.tag = "Nurse";
        GetComponent <Rigidbody2D>().mass = 1;
        AudioSource.PlayClipAtPoint(saddleSFX[0], transform.position);
        transform.Find("saddleTrigger").gameObject.layer = LayerMask.NameToLayer("TransparentFX");
        rb2D = col.GetComponent <Rigidbody2D>();
    }
コード例 #3
0
    void Start()
    {
        status = NStatus.IDLE;
        int layerMsk1 = 1 << LayerMask.NameToLayer("Ground");
        int layerMsk2 = 1 << LayerMask.NameToLayer("Props");
        int layerMsk3 = 1 << LayerMask.NameToLayer("OneWayGround");

        groundLayerMsk = layerMsk1 | layerMsk2 | layerMsk3;
        groundCheck    = transform.Find("groundCheck");

        kickHit = transform.Find("kickHit").GetComponent <KickHit>();
        //purseHit2 = transform.Find ("purseHit2");
        rb2D = GetComponent <Rigidbody2D>();

        aud  = GetComponent <AudioSource>();
        anim = GetComponent <Animator>();
        anim.SetFloat("Speed", 0f);
        if (damselStatus)
        {
            anim.Play("Nurse_Damsel");
            status = NStatus.DAMSEL;
            //GetComponent<PolygonCollider2D>().enabled = false;
            this.enabled = false;
        }
        startPos = transform.position;
    }
コード例 #4
0
 public void Bounce(Vector2 force)
 {
     GetComponent <Rigidbody2D>().AddForce(force);
     status = NStatus.JUMP;
     anim.Play("Nurse_Jump");
     stillJumping = true;
     //int i = UnityEngine.Random.Range (0, jumpFX.Length);
     //AudioSource.PlayClipAtPoint(jumpFX[i], transform.position);
 }
コード例 #5
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
 public void Bounce(Vector2 force)
 {
     GetComponent<Rigidbody2D>().AddForce (force);
     status = NStatus.JUMP;
     anim.Play ("Nurse_Jump");
     stillJumping = true;
     //int i = UnityEngine.Random.Range (0, jumpFX.Length);
     //AudioSource.PlayClipAtPoint(jumpFX[i], transform.position);
 }
コード例 #6
0
        public void AddStatusNotify(NetConnection <NetSession> conn, NStatus status)
        {
            if (conn.Session.Response.Notifies == null)
            {
                conn.Session.Response.Notifies = new StatusNotify();
            }

            conn.Session.Response.Notifies.Status.Add(status);
        }
コード例 #7
0
 void Jump()
 {
     anim.SetTrigger("stopText");
     idleCount = 0;
     GetComponent <Rigidbody2D>().AddForce(new Vector2(0f, jumpForce));
     status = NStatus.JUMP;
     anim.Play("Nurse_Jump");
     stillJumping = true;
     //int i = UnityEngine.Random.Range (0, jumpFX.Length);
     //AudioSource.PlayClipAtPoint(jumpFX[i], transform.position);
 }
コード例 #8
0
    public void Death()
    {
        transform.position = startPos;
        damselStatus       = true;

        status = NStatus.DAMSEL;
        playerCtrl.SaddleDown();
        //GetComponent<PolygonCollider2D>().enabled = false;
        anim.Play("Nurse_Damsel");
        this.enabled = false;
    }
コード例 #9
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
    public void Death()
    {
        transform.position = startPos;
        damselStatus = true;

            status = NStatus.DAMSEL;
            playerCtrl.SaddleDown();
            //GetComponent<PolygonCollider2D>().enabled = false;
            anim.Play("Nurse_Damsel");
            this.enabled = false;
    }
コード例 #10
0
 bool OnItemNotify(NStatus status)
 {
     if (status.Action == StatusAction.Add)
     {
         this.AddItems(status.Id, status.Value);
     }
     if (status.Action == StatusAction.Delete)
     {
         this.RemoveItem(status.Id, status.Value);
     }
     return(true);
 }
コード例 #11
0
    public void DisMounted()
    {
        print("dismounted");

        status = NStatus.IDLE;
        anim.Play("Nurse_Idle");
        gameObject.tag = "Untagged";
        //GetComponent<Rigidbody2D>().isKinematic = true;
        GetComponent <Rigidbody2D>().velocity = Vector2.zero;
        GetComponent <Rigidbody2D>().mass     = 20;
        StartCoroutine("SaddleOn");
        AudioSource.PlayClipAtPoint(saddleSFX[1], transform.position);
        this.enabled = false;
    }
コード例 #12
0
 public void OnItemNotify(NStatus status)
 {
     Debug.Log(status.Type);
     Debug.Log(status.Action);
     if (status.Type == StatusType.Item && status.Action == StatusAction.Add)
     {
         this.AddItem(status.Id, status.Value);
         BagManager.Instance.UpdateBag();
     }
     else if (status.Type == StatusType.Item && status.Action == StatusAction.Remove)
     {
         this.RemoveItem(status.Id, status.Value);
         BagManager.Instance.UpdateBag();
     }
 }
コード例 #13
0
ファイル: StatusManager.cs プロジェクト: Milkve/MyGenshinDemo
        public NStatus AddStatus(StatusType type, StatusAction action, int id, int value, byte[] param = null)
        {
            Dirty = true;
            NStatus nstatus = new NStatus()
            {
                Type   = type,
                Action = action,
                Id     = id,
                Value  = value,
                Param  = param
            };

            Console.WriteLine($"{type} {action} {id} {value}");
            Statuses.Add(nstatus);
            return(nstatus);
        }
コード例 #14
0
        private bool OnEquipedStatusNotify(NStatus nStatus)
        {
            Equip equip = null;

            if (!Equips.TryGetValue(nStatus.Value, out equip) || GameUtil.ParseSlot(equip.Type) != nStatus.Id)
            {
                return(false);
            }
            if (nStatus.Action == StatusAction.Add)
            {
                WearEquip(equip, nStatus.Id);
                return(true);
            }
            if (nStatus.Action == StatusAction.Delete && equip.CurrentSlot == nStatus.Id)
            {
                TakeOffEquip(equip, nStatus.Id);
            }
            return(false);
        }
コード例 #15
0
 private bool OnEquipStatusNotify(NStatus nStatus)
 {
     if (nStatus.Action == StatusAction.Add)
     {
         NEquipInfo nEquipInfo = new NEquipInfo()
         {
             Id         = nStatus.Id,
             templateId = nStatus.Value,
             Property   = nStatus.Param
         };
         User.Instance.CurrentCharacter.Equips.Add(nEquipInfo);
         return(AddEquip(nEquipInfo));
     }
     else if (nStatus.Action == StatusAction.Delete)
     {
         return(RemoveEquip(nStatus.Id));
     }
     return(false);
 }
コード例 #16
0
        private void Notify(NStatus status)
        {
            Debug.LogFormat("StatusNotify:[{0}] [{1}] {2}:{3}", status.Type, status.Action, status.Id, status.Value);
            if (status.Type == StatusType.Money)
            {
                if (status.Action == StatusAction.Add)
                {
                    User.Instance.AddGold(status.Value);
                }
                else if (status.Action == StatusAction.Delete)
                {
                    User.Instance.AddGold(-status.Value);
                }
            }
            StatusNotifyHandler handler;

            if (eventMap.TryGetValue(status.Type, out handler))
            {
                handler(status);
            }
        }
コード例 #17
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
    public void Mounted(Transform col)
    {
        print ("mounted");
        if(damselStatus){
            damselStatus = false;
            status = NStatus.IDLE;
            playerCtrl = col.GetComponent<PlayerControl>();

            anim.Play("Nurse_Idle");
            //GetComponent<PolygonCollider2D>().enabled = true;
            GetComponent<Rigidbody2D>().isKinematic = false;

            gameObject.layer = LayerMask.NameToLayer("Nurse");
            var t = transform.position;
            t.z = 0;
            transform.position = t;
            playerCtrl.GetNurseFeet(transform.Find ("nurse_body").Find ("nurse_booty").Find ("bob_footL"),transform.Find ("nurse_body").Find ("bob_footR"));
        }
        gameObject.tag = "Nurse";
        GetComponent<Rigidbody2D>().mass = 1;
        AudioSource.PlayClipAtPoint(saddleSFX[0],transform.position);
        transform.Find ("saddleTrigger").gameObject.layer = LayerMask.NameToLayer("TransparentFX");
        rb2D = col.GetComponent<Rigidbody2D>();
    }
コード例 #18
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
 void Jump()
 {
     anim.SetTrigger ("stopText");
     idleCount = 0;
     GetComponent<Rigidbody2D>().AddForce (new Vector2 (0f, jumpForce));
     status = NStatus.JUMP;
     anim.Play ("Nurse_Jump");
     stillJumping = true;
     //int i = UnityEngine.Random.Range (0, jumpFX.Length);
     //AudioSource.PlayClipAtPoint(jumpFX[i], transform.position);
 }
コード例 #19
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
    void Start()
    {
        status = NStatus.IDLE;
        int layerMsk1 = 1 << LayerMask.NameToLayer("Ground");
        int layerMsk2 = 1 << LayerMask.NameToLayer("Props");
        int layerMsk3 = 1 << LayerMask.NameToLayer("OneWayGround");
        groundLayerMsk = layerMsk1 | layerMsk2 | layerMsk3;
        groundCheck = transform.Find ("groundCheck");

        kickHit = transform.Find ("kickHit").GetComponent<KickHit>();
        //purseHit2 = transform.Find ("purseHit2");
        rb2D = GetComponent<Rigidbody2D>();

        aud = GetComponent<AudioSource>();
        anim = GetComponent<Animator>();
        anim.SetFloat ("Speed", 0f);
        if(damselStatus){
            anim.Play("Nurse_Damsel");
            status = NStatus.DAMSEL;
            //GetComponent<PolygonCollider2D>().enabled = false;
            this.enabled = false;
        }
        startPos = transform.position;
    }
コード例 #20
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
    public void DisMounted()
    {
        print ("dismounted");

        status = NStatus.IDLE;
        anim.Play("Nurse_Idle");
        gameObject.tag = "Untagged";
        //GetComponent<Rigidbody2D>().isKinematic = true;
        GetComponent<Rigidbody2D>().velocity = Vector2.zero;
        GetComponent<Rigidbody2D>().mass = 20;
        StartCoroutine("SaddleOn");
        AudioSource.PlayClipAtPoint(saddleSFX[1],transform.position);
        this.enabled = false;
    }
コード例 #21
0
ファイル: Nurse.cs プロジェクト: Libeedo/psycho-bob
    void FixedUpdate()
    {
        //if(straddled){
            float hVel = Input.GetAxis ("Horizontal");
            anim.SetFloat ("Speed", Mathf.Abs (hVel));

            if(grounded){          /////    ON THE GROUND!!!!!!!!!!!!!!!!!!!

                switch(status)
                {
                    case NStatus.IDLE:
                    idleCount++;
                    if(idleCount > 500){
                        anim.Play ("Nurse_Text");
                        idleCount = 0;
                    }
                        //rb2D.velocity = Vector2.zero;
                        if(Mathf.Abs(hVel) > 0f){
                            //print("idle to run");
                            status = NStatus.RUN;
                            Move (hVel);

                        }
                        if(jump){
                            Jump ();
                        }
                        break;

                    case NStatus.RUN:
                        Move (hVel);
                        if(Mathf.Abs(hVel) == 0f){
                            //rb2D.velocity = new Vector2(rb2D.velocity.x * 0.3f,rb2D.velocity.y);
                            //print("run to dile");
                            status = NStatus.IDLE;

                        }
                        if(jump){
                            Jump ();
                        }
                        break;
                    case NStatus.JUMP:
                        if(GetComponent<Rigidbody2D>().velocity.y <= 0f){
                            status = NStatus.IDLE;
                            aud.Play ();
                            anim.Play ("Nurse_LandGround");
                            GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x * 0.3f,GetComponent<Rigidbody2D>().velocity.y);//////????
                        }
                        break;

                    case NStatus.FALL:
                        status = NStatus.IDLE;

                        aud.Play ();
                        anim.Play ("Nurse_LandGround");
                        GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x * 0.3f,GetComponent<Rigidbody2D>().velocity.y);////????????
                        break;
                    case NStatus.LEVELANIM:
                        //anim.animation.Sample();

                        break;

                    }
            }else{//IN AIR
                switch(status)
                {
                case NStatus.IDLE:
                    Move (hVel);
                    status = NStatus.FALL;
                    anim.Play ("Nurse_Fall");

                    break;

                case NStatus.RUN:
                    Move (hVel);
                    status = NStatus.FALL;
                    anim.Play ("Nurse_Fall");

                    break;

                case NStatus.JUMP:
                    Move (hVel/5f);
                    if(jump){//jump button held down - go higher
                        //print ("jumping");
                        Jumping ();
                    }
                    if(GetComponent<Rigidbody2D>().velocity.y < 0.001f){
                        status = NStatus.FALL;
                        anim.Play ("Nurse_Fall");
                    }
                    break;
                case NStatus.FALL:
                    Move (hVel/3f);

                    break;
                case NStatus.LEVELANIM:
                    //anim.animation.Sample();

                    break;
                }

            }
        //}
    }
コード例 #22
0
    void FixedUpdate()
    {
        //if(straddled){
        float hVel = Input.GetAxis("Horizontal");

        anim.SetFloat("Speed", Mathf.Abs(hVel));

        if (grounded)                          /////    ON THE GROUND!!!!!!!!!!!!!!!!!!!

        {
            switch (status)
            {
            case NStatus.IDLE:
                idleCount++;
                if (idleCount > 500)
                {
                    anim.Play("Nurse_Text");
                    idleCount = 0;
                }
                //rb2D.velocity = Vector2.zero;
                if (Mathf.Abs(hVel) > 0f)
                {
                    //print("idle to run");
                    status = NStatus.RUN;
                    Move(hVel);
                }
                if (jump)
                {
                    Jump();
                }
                break;

            case NStatus.RUN:
                Move(hVel);
                if (Mathf.Abs(hVel) == 0f)
                {
                    //rb2D.velocity = new Vector2(rb2D.velocity.x * 0.3f,rb2D.velocity.y);
                    //print("run to dile");
                    status = NStatus.IDLE;
                }
                if (jump)
                {
                    Jump();
                }
                break;

            case NStatus.JUMP:
                if (GetComponent <Rigidbody2D>().velocity.y <= 0f)
                {
                    status = NStatus.IDLE;
                    aud.Play();
                    anim.Play("Nurse_LandGround");
                    GetComponent <Rigidbody2D>().velocity = new Vector2(GetComponent <Rigidbody2D>().velocity.x * 0.3f, GetComponent <Rigidbody2D>().velocity.y);                                //////????
                }
                break;

            case NStatus.FALL:
                status = NStatus.IDLE;

                aud.Play();
                anim.Play("Nurse_LandGround");
                GetComponent <Rigidbody2D>().velocity = new Vector2(GetComponent <Rigidbody2D>().velocity.x * 0.3f, GetComponent <Rigidbody2D>().velocity.y);                            ////????????
                break;

            case NStatus.LEVELANIM:
                //anim.animation.Sample();

                break;
            }
        }
        else                  //IN AIR
        {
            switch (status)
            {
            case NStatus.IDLE:
                Move(hVel);
                status = NStatus.FALL;
                anim.Play("Nurse_Fall");

                break;

            case NStatus.RUN:
                Move(hVel);
                status = NStatus.FALL;
                anim.Play("Nurse_Fall");

                break;


            case NStatus.JUMP:
                Move(hVel / 5f);
                if (jump)                        //jump button held down - go higher
                                                 //print ("jumping");
                {
                    Jumping();
                }
                if (GetComponent <Rigidbody2D>().velocity.y < 0.001f)
                {
                    status = NStatus.FALL;
                    anim.Play("Nurse_Fall");
                }
                break;

            case NStatus.FALL:
                Move(hVel / 3f);

                break;

            case NStatus.LEVELANIM:
                //anim.animation.Sample();

                break;
            }
        }
        //}
    }