From 35935549bdf1c689ad8f27e13727f87722d5e2cc Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Mon, 3 Nov 2025 14:46:33 +0000 Subject: [PATCH] =?UTF-8?q?refactor(effect):=20=E9=87=8D=E6=9E=84=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E8=8A=82=E7=82=B9=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8F=8A=E5=B1=9E=E4=B8=BB=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将Alive()方法改为Alive(bool)可设置方法,替代NotALive() - 将GetOwner()改为Owner(bool)可设置方法 - 修复效果初始化时默认激活状态 - 优化效果叠层和取消逻辑 - 修正超时处理日志输出 --- common/utils/bytearray/bytearray_test.go | 19 +++--- logic/go.mod | 7 ++- logic/go.sum | 66 +++----------------- logic/service/fight/effect/effect_62.go | 4 +- logic/service/fight/effect/effect_67.go | 6 +- logic/service/fight/effect/effect_9.go | 2 +- logic/service/fight/fightc.go | 2 +- logic/service/fight/input/effecti.go | 6 +- logic/service/fight/input/input.go | 2 +- logic/service/fight/input/node.go | 7 +-- logic/service/fight/loop.go | 1 + logic/service/fight/node/Turn.go | 2 +- logic/service/fight/node/node.go | 78 ++++++++++++------------ 13 files changed, 77 insertions(+), 125 deletions(-) diff --git a/common/utils/bytearray/bytearray_test.go b/common/utils/bytearray/bytearray_test.go index 54bf4fb3f..74a4846fd 100644 --- a/common/utils/bytearray/bytearray_test.go +++ b/common/utils/bytearray/bytearray_test.go @@ -7,15 +7,14 @@ import ( func BenchmarkByteArray(b *testing.B) { b.ReportAllocs() //写入 -testbyte:=CreateByteArray() -for i := 0; i < b.N; i++ { - testbyte.writeNumber(42) - testbyte.writeNumber(12345.4) - testbyte.writeNumber(123456789) - testbyte.writeNumber(1234567890123456789) - testbyte.WriteString("test string") - testbyte.Bytes() -} - + testbyte := CreateByteArray(nil) + for i := 0; i < b.N; i++ { + testbyte.writeNumber(42) + testbyte.writeNumber(12345.4) + testbyte.writeNumber(123456789) + testbyte.writeNumber(1234567890123456789) + testbyte.WriteString("test string") + testbyte.Bytes() + } } diff --git a/logic/go.mod b/logic/go.mod index 0ba8efa48..77e3c6c74 100644 --- a/logic/go.mod +++ b/logic/go.mod @@ -3,16 +3,16 @@ module blazing/logic go 1.19 require ( + github.com/antlabs/timer v0.1.4 github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df github.com/brunoga/deep v1.2.5 - github.com/butoften/array v1.0.9 github.com/creasty/defaults v1.8.0 github.com/gobwas/ws v1.4.0 github.com/gogf/gf/contrib/nosql/redis/v2 v2.6.3 github.com/jinzhu/copier v0.4.0 github.com/lunixbochs/struc v0.0.0-20241101090106-8d528fa2c543 github.com/panjf2000/ants/v2 v2.11.3 - github.com/panjf2000/gnet v1.6.7 + github.com/pointernil/bitset32 v0.0.1 github.com/shopspring/decimal v1.4.0 github.com/tnnmigga/enum v1.0.2 golang.org/x/sync v0.11.0 @@ -20,7 +20,8 @@ require ( require ( github.com/BurntSushi/toml v1.4.0 // indirect - github.com/bruceshao/lockfree v1.1.2 // indirect + github.com/antlabs/stl v0.0.2 // indirect + github.com/bits-and-blooms/bitset v1.5.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/clbanning/mxj/v2 v2.7.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect diff --git a/logic/go.sum b/logic/go.sum index f271e44af..9269a0094 100644 --- a/logic/go.sum +++ b/logic/go.sum @@ -1,17 +1,17 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/antlabs/stl v0.0.2 h1:sna1AXR5yIkNE9lWhCcKbheFJSVfCa3vugnGyakI79s= +github.com/antlabs/stl v0.0.2/go.mod h1:kKrO4xrn9cfS1mJVo+/BqePZjAYMXqD0amGF2Ouq7ac= +github.com/antlabs/timer v0.1.4 h1:MHdE00MDnNfhJCmqSOdLXs35uGNwfkMwfbynxrGmQ1c= +github.com/antlabs/timer v0.1.4/go.mod h1:mpw4zlD5KVjstEyUDp43DGLWsY076Mdo4bS78NTseRE= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/bruceshao/lockfree v1.1.2 h1:V3j7bZWS+yDjazffbobpR+ZCVq98DNJcZMvO8vWFLmc= -github.com/bruceshao/lockfree v1.1.2/go.mod h1:zkhImea4VTfzWvFF1Lleo1esCZeJLGgrYN+mUuqNrMA= +github.com/bits-and-blooms/bitset v1.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8= +github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/brunoga/deep v1.2.5 h1:bigq4eooqbeJXfvTfZBn3AH3B1iW+rtetxVeh0GiLrg= github.com/brunoga/deep v1.2.5/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/butoften/array v1.0.9 h1:/kPHAc+fHz72u5B23p2W1RzIoT2eOYvhsY0tKMvsHEc= -github.com/butoften/array v1.0.9/go.mod h1:RgJ3XIUy/Z2rQllTkXmS4LtfqJeD3mjYJ4XoP3odTqM= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= @@ -19,9 +19,7 @@ github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creasty/defaults v1.8.0 h1:z27FJxCAa0JKt3utc0sCImAEb+spPucmKoOdLHvHYKk= github.com/creasty/defaults v1.8.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -50,7 +48,6 @@ github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtg github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc= github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -72,17 +69,14 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/panjf2000/ants/v2 v2.4.7/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= github.com/panjf2000/ants/v2 v2.11.3 h1:AfI0ngBoXJmYOpDh9m516vjqoUu2sLrIVgppI9TZVpg= github.com/panjf2000/ants/v2 v2.11.3/go.mod h1:8u92CYMUc6gyvTIw8Ru7Mt7+/ESnJahz5EVtqfrilek= -github.com/panjf2000/gnet v1.6.7 h1:zv1k6kw80sG5ZQrLpbbFDheNCm50zm3z2e3ck5GwMOM= -github.com/panjf2000/gnet v1.6.7/go.mod h1:KcOU7QsCaCBjeD5kyshBIamG3d9kAQtlob4Y0v0E+sc= github.com/panjf2000/gnet/v2 v2.9.1 h1:bKewICy/0xnQ9PMzNaswpe/Ah14w1TrRk91LHTcbIlA= github.com/panjf2000/gnet/v2 v2.9.1/go.mod h1:WQTxDWYuQ/hz3eccH0FN32IVuvZ19HewEWx0l62fx7E= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pointernil/bitset32 v0.0.1 h1:GL7o6ehG4W5ztXic75ncAmKzSxYQRSKxyaz2wOdz2aM= +github.com/pointernil/bitset32 v0.0.1/go.mod h1:naghmAYTkvJhKSCVPbBwLAXkHMF2WBIJ1bJpnFpmQwI= github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8= github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -93,17 +87,12 @@ github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDN github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tnnmigga/enum v1.0.2 h1:Yvchx0Esc01X5HiphW78sKzH/RXKttdFsfPO1ARiOa4= github.com/tnnmigga/enum v1.0.2/go.mod h1:QaBFBwGJi/2GAM34b2pz6UL2NRtl2TRZ8lXp4vGwqhA= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= @@ -112,64 +101,25 @@ go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucg go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211204120058-94396e421777/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/logic/service/fight/effect/effect_62.go b/logic/service/fight/effect/effect_62.go index 5a4b5eca7..054ef86e2 100644 --- a/logic/service/fight/effect/effect_62.go +++ b/logic/service/fight/effect/effect_62.go @@ -17,10 +17,10 @@ type Effect62 struct { func init() { t := &Effect62{ EffectNode: node.EffectNode{ - Owner: true, + }, } - + t.Owner(true) input.InitEffect(input.EffectType.Skill, 62, t) } diff --git a/logic/service/fight/effect/effect_67.go b/logic/service/fight/effect/effect_67.go index 6dd3c1d5c..fb2bbe7cf 100644 --- a/logic/service/fight/effect/effect_67.go +++ b/logic/service/fight/effect/effect_67.go @@ -14,9 +14,13 @@ type Effect67 struct { } func init() { + t := &Effect67{ + EffectNode: node.EffectNode{}, + } + t.Owner(true) input.InitEffect(input.EffectType.Skill, 67, &Effect67{ EffectNode: node.EffectNode{ - Owner: true, + }, }) diff --git a/logic/service/fight/effect/effect_9.go b/logic/service/fight/effect/effect_9.go index df224b003..d6d16e942 100644 --- a/logic/service/fight/effect/effect_9.go +++ b/logic/service/fight/effect/effect_9.go @@ -25,7 +25,7 @@ type Effect9 struct { func (e *Effect9) Skill_Hit(ctx input.Ctx) bool { if e.Skillid != 0 && ctx.SkillEntity.ID != e.Skillid { - e.NotALive() + e.Alive(false) e.UseSkillCount = 0 return true diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index d53e838e0..aaeb23992 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -289,7 +289,7 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *action.S if a.SkillEntity.Category() != info.Category.STATUS { t := defender.GetEffect(input.EffectType.Status, int(info.PetStatus.Sleep)) if t != nil { - t.NotALive() + t.Alive(false) } } diff --git a/logic/service/fight/input/effecti.go b/logic/service/fight/input/effecti.go index e244a6849..912bd7023 100644 --- a/logic/service/fight/input/effecti.go +++ b/logic/service/fight/input/effecti.go @@ -53,11 +53,11 @@ type Effect interface { //回合数,然后次数另外维护 Duration(...int) int Hit(...bool) bool - Alive() bool + Alive(...bool) bool Stack(...int) int MaxStack(...int) int - NotALive() - GetOwner() bool // 技能属主,比如寄生和镇魂歌,属主是对方) + + Owner(...bool) bool // 技能属主,比如寄生和镇魂歌,属主是对方) GetInput() *Input ID(...int) int //GetSkill() *BattleSkillEntity //获得技能ctx diff --git a/logic/service/fight/input/input.go b/logic/service/fight/input/input.go index 985da9dd3..6de2d6e0c 100644 --- a/logic/service/fight/input/input.go +++ b/logic/service/fight/input/input.go @@ -118,7 +118,7 @@ func (i *Input) Parseskill(defender *Input, skill *action.SelectSkillAction) { if t != nil { t.SetArgs(i, temparg[:args]...) //设置入参,施加方永远是我方 - if t.GetOwner() { //如果取反,说明是给对方添加的回合效果 + if t.Owner() { //如果取反,说明是给对方添加的回合效果 //实际上,owner永远为反,说明是对方给我添加的 t.SetArgs(i, temparg[:args]...) //设置入参,施加方永远是我方 //给双方添加 diff --git a/logic/service/fight/input/node.go b/logic/service/fight/input/node.go index f5464303a..f76f3d9c4 100644 --- a/logic/service/fight/input/node.go +++ b/logic/service/fight/input/node.go @@ -34,7 +34,7 @@ func Geteffect(etype EnumEffectType, id int) Effect { //todo 获取前GetEffect eff := deep.MustCopy(ret) - + eff.Alive(true) //添加后默认激活 return eff //todo 获取后GetEffect } @@ -109,7 +109,7 @@ func (c *Input) AddEffect(e Effect) { if v.ID() == e.ID() && v.Alive() { if v.MaxStack() > 0 { - v.NotALive() //取消之前效果 + e.Alive(false) //取消之前效果 if v.Stack() <= v.MaxStack() { //如果小于最大叠层,状态可以叠层 e.SetArgs(v.GetInput(), v.GetArgs()...) //参数输入 e.Stack(v.Stack() + e.Stack()) //获取到当前叠层数然后叠加 @@ -152,9 +152,8 @@ func (c *Input) CancelTurn(efftype bool) { for _, value := range c.Effects { if value.Duration() > 0 { //false是自身,true是对方,反转后为真就是自己的 //slice = append(slice[:i], slice[i+1:]...) - value.NotALive() + value.Alive(false) } - return } diff --git a/logic/service/fight/loop.go b/logic/service/fight/loop.go index bac8b3cce..ae3f36138 100644 --- a/logic/service/fight/loop.go +++ b/logic/service/fight/loop.go @@ -97,6 +97,7 @@ func (f *FightC) handleTimeout(ourID, oppID uint32, actions map[uint32]action.Ba fmt.Printf("玩家%d 超时\n", pid) player := f.GetInputByPlayer(f.getPlayerByID(pid), true).Player if !f.GetInputByPlayer(f.getPlayerByID(pid), false).Finished { + fmt.Printf("玩家%d 加载超时\n", pid) f.UseSkill(player, 0) //卡加载,给对方也一个action } f.Over(f.getPlayerByID(pid), info.BattleOverReason.PlayerOVerTime) diff --git a/logic/service/fight/node/Turn.go b/logic/service/fight/node/Turn.go index 577f3962c..b9e8d2a7b 100644 --- a/logic/service/fight/node/Turn.go +++ b/logic/service/fight/node/Turn.go @@ -15,7 +15,7 @@ func (e *EffectNode) Turn_Start(ctx input.Ctx) { func (e *EffectNode) Turn_End(ctx input.Ctx) { if e.duration == 0 { // 保留 (负数表示永久) - e.NotALive() + e.Alive(false) } else { e.duration-- } diff --git a/logic/service/fight/node/node.go b/logic/service/fight/node/node.go index 7818e2e40..f48e8cb54 100644 --- a/logic/service/fight/node/node.go +++ b/logic/service/fight/node/node.go @@ -15,18 +15,21 @@ type EffectNode struct { id int maxStack int // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层 SideEffectArgs []int // 附加效果参数 - Owner bool //是否作用自身 + owner bool //是否作用自身 Success bool // 是否执行成功 成功XXX,失败XXX arget bool // 传出作用对象,默认0是自身,1是作用于对面 Flag int //过滤掉的战斗类型 pvp pve boss战斗,野怪全部生效 - notAlive bool // 是否失效 effect返回值是否被取消,是否被删除 + alive bool // 是否失效 effect返回值是否被取消,是否被删除 hit bool //增加owner target,如果owner target都为自身,就回合效果结束后再使用回合效果 } -func (this *EffectNode) Alive() bool { +func (e *EffectNode) Alive(t ...bool) bool { + if len(t) > 0 { + e.alive = t[0] + } - return !this.notAlive + return e.alive } func (e *EffectNode) GetInput() *input.Input { @@ -34,74 +37,69 @@ func (e *EffectNode) GetInput() *input.Input { return e.Input } -func (e *EffectNode) NotALive() { - e.notAlive = true - -} -func (e *EffectNode) GetOwner() bool { - - return e.Owner - -} -func (e *EffectNode) SetOwner(b bool) { - - e.Owner = b - -} -func (this *EffectNode) Stack(t ...int) int { +func (e *EffectNode) Owner(t ...bool) bool { if len(t) > 0 { - this.stacks = t[0] + e.owner = t[0] } - return this.stacks + return e.owner } -func (this *EffectNode) ID(t ...int) int { + +func (e *EffectNode) Stack(t ...int) int { if len(t) > 0 { - this.id = t[0] + e.stacks = t[0] } - return this.id + return e.stacks } -func (this *EffectNode) Hit(t ...bool) bool { +func (e *EffectNode) ID(t ...int) int { if len(t) > 0 { - this.hit = t[0] + e.id = t[0] } - return this.hit + return e.id } -func (this *EffectNode) MaxStack(t ...int) int { - +func (e *EffectNode) Hit(t ...bool) bool { if len(t) > 0 { - this.maxStack = t[0] + e.hit = t[0] } - return this.maxStack + + return e.hit } -func (this *EffectNode) Duration(t ...int) int { +func (e *EffectNode) MaxStack(t ...int) int { + if len(t) > 0 { - this.duration = t[0] + e.maxStack = t[0] } - return this.duration + return e.maxStack + +} +func (e *EffectNode) Duration(t ...int) int { + if len(t) > 0 { + e.duration = t[0] + } + return e.duration } // 设置参数,加上设置输入源 -func (this *EffectNode) SetArgs(t *input.Input, a ...int) { - this.Input = t - this.SideEffectArgs = a +func (e *EffectNode) SetArgs(t *input.Input, a ...int) { + e.Input = t + e.SideEffectArgs = a } -func (this *EffectNode) GetArgs() []int { +func (e *EffectNode) GetArgs() []int { - return this.SideEffectArgs + return e.SideEffectArgs } -func (this *EffectNode) AttackTime(*input.Input, *input.Input) bool { +func (e *EffectNode) AttackTime(*input.Input, *input.Input) bool { return true