diff --git a/bin/json/game_comatn.json b/bin/json/game_comatn.json
index b67769140..c53631a71 100644
--- a/bin/json/game_comatn.json
+++ b/bin/json/game_comatn.json
@@ -4,8 +4,8 @@
"var": [
{
"a": "attr",
- "t": "gold",
- "n": 20000
+ "t": "rmbmoney",
+ "n": 20
}
]
},
@@ -14,7 +14,7 @@
"var": [
{
"a": "attr",
- "t": "gold",
+ "t": "rmbmoney",
"n": 20
}
]
diff --git a/bin/json/game_equip.json b/bin/json/game_equip.json
index d51dc420f..301eb0fe5 100644
--- a/bin/json/game_equip.json
+++ b/bin/json/game_equip.json
@@ -25,7 +25,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -62,7 +62,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -101,7 +101,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -138,7 +138,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -177,7 +177,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -214,7 +214,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -251,7 +251,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -288,7 +288,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -327,7 +327,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -364,7 +364,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -403,7 +403,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -440,7 +440,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -477,7 +477,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -514,7 +514,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -553,7 +553,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -590,7 +590,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -629,7 +629,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -666,7 +666,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -703,7 +703,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -740,7 +740,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -779,7 +779,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -816,7 +816,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -855,7 +855,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -892,7 +892,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -929,7 +929,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -966,7 +966,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -1005,7 +1005,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -1042,7 +1042,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -1081,7 +1081,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -1118,7 +1118,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -1155,7 +1155,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -1192,7 +1192,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -1231,7 +1231,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -1268,7 +1268,7 @@
20
],
"addlibrary": 1001,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -1307,7 +1307,7 @@
10
],
"addlibrary": 1001,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -1344,7 +1344,7 @@
5
],
"addlibrary": 1001,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -1381,7 +1381,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -1418,7 +1418,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -1457,7 +1457,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -1494,7 +1494,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -1533,7 +1533,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -1570,7 +1570,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -1607,7 +1607,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -1644,7 +1644,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -1683,7 +1683,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -1720,7 +1720,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -1759,7 +1759,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -1796,7 +1796,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -1833,7 +1833,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -1870,7 +1870,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -1909,7 +1909,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -1946,7 +1946,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -1985,7 +1985,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -2022,7 +2022,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -2059,7 +2059,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -2096,7 +2096,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -2135,7 +2135,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -2172,7 +2172,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -2211,7 +2211,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -2248,7 +2248,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -2285,7 +2285,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -2322,7 +2322,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -2361,7 +2361,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -2398,7 +2398,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -2437,7 +2437,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -2474,7 +2474,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
@@ -2511,7 +2511,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_01",
+ "ico": "zb_icon_01",
"use_skip": 102,
"sale": [
{
@@ -2548,7 +2548,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_02",
+ "ico": "zb_icon_02",
"use_skip": 102,
"sale": [
{
@@ -2587,7 +2587,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_03",
+ "ico": "zb_icon_03",
"use_skip": 102,
"sale": [
{
@@ -2624,7 +2624,7 @@
20
],
"addlibrary": 1101,
- "ico": "zc_icon_04",
+ "ico": "zb_icon_04",
"use_skip": 102,
"sale": [
{
@@ -2663,7 +2663,7 @@
10
],
"addlibrary": 1101,
- "ico": "zc_icon_05",
+ "ico": "zb_icon_05",
"use_skip": 102,
"sale": [
{
@@ -2700,7 +2700,7 @@
5
],
"addlibrary": 1101,
- "ico": "zc_icon_06",
+ "ico": "zb_icon_06",
"use_skip": 102,
"sale": [
{
diff --git a/bin/json/game_initial.json b/bin/json/game_initial.json
index d70392fcb..64f5e0f15 100644
--- a/bin/json/game_initial.json
+++ b/bin/json/game_initial.json
@@ -1,4 +1,14 @@
[
+ {
+ "index": "1",
+ "var": [
+ {
+ "a": "hero",
+ "t": "25001",
+ "n": 5
+ }
+ ]
+ },
{
"index": "2",
"var": [
@@ -9,6 +19,106 @@
}
]
},
+ {
+ "index": "3",
+ "var": [
+ {
+ "a": "hero",
+ "t": "25004",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "13",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10051",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "14",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10052",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "15",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10053",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "16",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10054",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "17",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10055",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "18",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10056",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "19",
+ "var": [
+ {
+ "a": "hero",
+ "t": "42911",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "20",
+ "var": [
+ {
+ "a": "hero",
+ "t": "43911",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "index": "21",
+ "var": [
+ {
+ "a": "hero",
+ "t": "44911",
+ "n": 100
+ }
+ ]
+ },
{
"index": "23",
"var": [
@@ -19,6 +129,356 @@
}
]
},
+ {
+ "index": "24",
+ "var": [
+ {
+ "a": "item",
+ "t": "10006",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "25",
+ "var": [
+ {
+ "a": "item",
+ "t": "10009",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "26",
+ "var": [
+ {
+ "a": "item",
+ "t": "10010",
+ "n": 45
+ }
+ ]
+ },
+ {
+ "index": "27",
+ "var": [
+ {
+ "a": "item",
+ "t": "10011",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "28",
+ "var": [
+ {
+ "a": "item",
+ "t": "10012",
+ "n": 1250
+ }
+ ]
+ },
+ {
+ "index": "29",
+ "var": [
+ {
+ "a": "item",
+ "t": "10013",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "index": "30",
+ "var": [
+ {
+ "a": "item",
+ "t": "10014",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "31",
+ "var": [
+ {
+ "a": "item",
+ "t": "10015",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "32",
+ "var": [
+ {
+ "a": "item",
+ "t": "10016",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "33",
+ "var": [
+ {
+ "a": "item",
+ "t": "50001",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "34",
+ "var": [
+ {
+ "a": "item",
+ "t": "50002",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "35",
+ "var": [
+ {
+ "a": "item",
+ "t": "50003",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "36",
+ "var": [
+ {
+ "a": "item",
+ "t": "50004",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "37",
+ "var": [
+ {
+ "a": "item",
+ "t": "50005",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "38",
+ "var": [
+ {
+ "a": "item",
+ "t": "50006",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "39",
+ "var": [
+ {
+ "a": "item",
+ "t": "50007",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "40",
+ "var": [
+ {
+ "a": "item",
+ "t": "50008",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "41",
+ "var": [
+ {
+ "a": "item",
+ "t": "50009",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "42",
+ "var": [
+ {
+ "a": "item",
+ "t": "50010",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "43",
+ "var": [
+ {
+ "a": "item",
+ "t": "50011",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "44",
+ "var": [
+ {
+ "a": "item",
+ "t": "50012",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "index": "45",
+ "var": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 999
+ }
+ ]
+ },
+ {
+ "index": "46",
+ "var": [
+ {
+ "a": "item",
+ "t": "30002",
+ "n": 999
+ }
+ ]
+ },
+ {
+ "index": "47",
+ "var": [
+ {
+ "a": "item",
+ "t": "30003",
+ "n": 999
+ }
+ ]
+ },
+ {
+ "index": "48",
+ "var": [
+ {
+ "a": "item",
+ "t": "30004",
+ "n": 999
+ }
+ ]
+ },
+ {
+ "index": "49",
+ "var": [
+ {
+ "a": "item",
+ "t": "30005",
+ "n": 999
+ }
+ ]
+ },
+ {
+ "index": "50",
+ "var": [
+ {
+ "a": "item",
+ "t": "10002",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "index": "51",
+ "var": [
+ {
+ "a": "hero",
+ "t": "43921",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "index": "52",
+ "var": [
+ {
+ "a": "hero",
+ "t": "44921",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "index": "53",
+ "var": [
+ {
+ "a": "hero",
+ "t": "45921",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "index": "54",
+ "var": [
+ {
+ "a": "hero",
+ "t": "44006",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "55",
+ "var": [
+ {
+ "a": "hero",
+ "t": "35001",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "56",
+ "var": [
+ {
+ "a": "hero",
+ "t": "44005",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "57",
+ "var": [
+ {
+ "a": "hero",
+ "t": "15004",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "59",
+ "var": [
+ {
+ "a": "hero",
+ "t": "14007",
+ "n": 5
+ }
+ ]
+ },
{
"index": "60",
"var": [
@@ -28,5 +488,475 @@
"n": 5
}
]
+ },
+ {
+ "index": "61",
+ "var": [
+ {
+ "a": "hero",
+ "t": "24004",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "65",
+ "var": [
+ {
+ "a": "hero",
+ "t": "34006",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "66",
+ "var": [
+ {
+ "a": "hero",
+ "t": "24003",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "67",
+ "var": [
+ {
+ "a": "item",
+ "t": "10004",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "68",
+ "var": [
+ {
+ "a": "hero",
+ "t": "43901",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "69",
+ "var": [
+ {
+ "a": "hero",
+ "t": "43902",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "70",
+ "var": [
+ {
+ "a": "hero",
+ "t": "43903",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "71",
+ "var": [
+ {
+ "a": "hero",
+ "t": "14003",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "72",
+ "var": [
+ {
+ "a": "hero",
+ "t": "24002",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "73",
+ "var": [
+ {
+ "a": "hero",
+ "t": "15005",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "74",
+ "var": [
+ {
+ "a": "hero",
+ "t": "35003",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "index": "75",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10001",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "76",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10002",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "77",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10003",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "78",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10004",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "79",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10005",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "80",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10006",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "81",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10011",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "82",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10012",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "83",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10013",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "84",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10014",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "85",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10015",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "86",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10016",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "87",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10021",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "88",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10022",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "89",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10023",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "90",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10024",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "91",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10025",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "92",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10026",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "93",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10031",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "94",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10032",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "95",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10033",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "96",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10034",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "97",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10035",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "98",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10036",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "99",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10041",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "100",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10042",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "101",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10043",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "102",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10044",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "103",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10045",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "104",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10046",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "105",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10051",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "106",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10052",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "107",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10053",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "108",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10054",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "109",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10055",
+ "n": 1
+ }
+ ]
+ },
+ {
+ "index": "110",
+ "var": [
+ {
+ "a": "equi",
+ "t": "10056",
+ "n": 1
+ }
+ ]
}
]
\ No newline at end of file
diff --git a/bin/json/game_item.json b/bin/json/game_item.json
index 602453e69..3e8ba26b7 100644
--- a/bin/json/game_item.json
+++ b/bin/json/game_item.json
@@ -797,7 +797,7 @@
"isani": 0,
"star": 0,
"race": 0,
- "img": "wp_icon_10009",
+ "img": "wp_icon_10019",
"ico": "wp_icon_10019",
"intr": {
"key": "itemdesc_30001",
@@ -834,7 +834,7 @@
"isani": 0,
"star": 0,
"race": 0,
- "img": "wp_icon_10010",
+ "img": "wp_icon_10020",
"ico": "wp_icon_10020",
"intr": {
"key": "itemdesc_30002",
@@ -871,7 +871,7 @@
"isani": 0,
"star": 0,
"race": 0,
- "img": "wp_icon_10011",
+ "img": "wp_icon_10021",
"ico": "wp_icon_10021",
"intr": {
"key": "itemdesc_30003",
@@ -908,7 +908,7 @@
"isani": 0,
"star": 0,
"race": 0,
- "img": "wp_icon_10012",
+ "img": "wp_icon_10022",
"ico": "wp_icon_10022",
"intr": {
"key": "itemdesc_30004",
@@ -945,7 +945,7 @@
"isani": 0,
"star": 0,
"race": 0,
- "img": "wp_icon_10013",
+ "img": "wp_icon_10023",
"ico": "wp_icon_10023",
"intr": {
"key": "itemdesc_30005",
diff --git a/modules/battle/fight/attribute/attributenumeric.go b/modules/battle/fight/attribute/attributenumeric.go
index 9137887c2..84ea13c14 100644
--- a/modules/battle/fight/attribute/attributenumeric.go
+++ b/modules/battle/fight/attribute/attributenumeric.go
@@ -44,12 +44,95 @@ func (this *AttributeNumeric) Value() float32 {
return this.fixedValue.Scalar()
}
+///基础数值
func (this *AttributeNumeric) SetBase(value float32) float32 {
this.BaseValue.SetFloat(value)
this.onChange()
return this.BaseValue.Value()
}
-func (this *AttributeNumeric) onChange() {
- // this.fixedValue = (this.BaseValue.Fixed()*(1+this.ProValue.Fixed())+this.AppendValue.Fixed())*(1+this.BuffProValue.Fixed()) + this.BuffValue.Fixed()
+func (this *AttributeNumeric) AddBase(value float32) float32 {
+ this.BaseValue.Add(value)
+ this.onChange()
+ return this.BaseValue.Value()
+}
+
+func (this *AttributeNumeric) MinusBase(value float32) float32 {
+ this.BaseValue.Minus(value)
+ this.onChange()
+ return this.BaseValue.Value()
+}
+
+///附加数值
+func (this *AttributeNumeric) SetAppend(value float32) float32 {
+ this.AppendValue.SetFloat(value)
+ this.onChange()
+ return this.AppendValue.Value()
+}
+
+func (this *AttributeNumeric) AddAppend(value float32) float32 {
+ this.AppendValue.Add(value)
+ this.onChange()
+ return this.AppendValue.Value()
+}
+
+func (this *AttributeNumeric) MinusAppend(value float32) float32 {
+ this.AppendValue.Minus(value)
+ this.onChange()
+ return this.AppendValue.Value()
+}
+
+///附加百分比数值
+func (this *AttributeNumeric) SetPro(value float32) float32 {
+ this.ProValue.SetFloat(value)
+ this.onChange()
+ return this.ProValue.Value()
+}
+func (this *AttributeNumeric) AddPro(value float32) float32 {
+ this.ProValue.Add(value)
+ this.onChange()
+ return this.ProValue.Value()
+}
+func (this *AttributeNumeric) MinusPro(value float32) float32 {
+ this.ProValue.Minus(value)
+ this.onChange()
+ return this.ProValue.Value()
+}
+
+/// Buff附加数值
+func (this *AttributeNumeric) SetBuff(value float32) float32 {
+ this.BuffValue.SetFloat(value)
+ this.onChange()
+ return this.BuffValue.Value()
+}
+func (this *AttributeNumeric) AddBuff(value float32) float32 {
+ this.BuffValue.Add(value)
+ this.onChange()
+ return this.BuffValue.Value()
+}
+func (this *AttributeNumeric) MinusBuff(value float32) float32 {
+ this.BuffValue.Minus(value)
+ this.onChange()
+ return this.BuffValue.Value()
+}
+
+/// Buff附加百分比数值
+func (this *AttributeNumeric) SetBuffPro(value float32) float32 {
+ this.BuffProValue.SetFloat(value)
+ this.onChange()
+ return this.BuffProValue.Value()
+}
+func (this *AttributeNumeric) AddBuffPro(value float32) float32 {
+ this.BuffProValue.Add(value)
+ this.onChange()
+ return this.BuffProValue.Value()
+}
+func (this *AttributeNumeric) MinusBuffPro(value float32) float32 {
+ this.BuffProValue.Minus(value)
+ this.onChange()
+ return this.BuffProValue.Value()
+}
+
+func (this *AttributeNumeric) onChange() {
+ this.fixedValue = (FixedPoint_Multiply(this.BaseValue.Fixed(), (NewFixedPoint(1)+this.ProValue.Fixed())) + FixedPoint_Multiply(this.AppendValue.Fixed(), (NewFixedPoint(1)+this.BuffProValue.Fixed())) + this.BuffValue.Fixed())
}
diff --git a/modules/battle/fight/attribute/fixednumeric.go b/modules/battle/fight/attribute/fixednumeric.go
index 7ec29cc63..c327e3101 100644
--- a/modules/battle/fight/attribute/fixednumeric.go
+++ b/modules/battle/fight/attribute/fixednumeric.go
@@ -29,6 +29,7 @@ func (this FixedNumeric) SetFloat(value float32) float32 {
this.baseValue = NewFixedPoint(value)
return this.baseValue.Scalar()
}
+
func (this FixedNumeric) Set(value FixedPoint) float32 {
this.baseValue = value
return this.baseValue.Scalar()
diff --git a/modules/battle/fight/attribute/fixedpoint.go b/modules/battle/fight/attribute/fixedpoint.go
index 5f0385e55..1d9da5b17 100644
--- a/modules/battle/fight/attribute/fixedpoint.go
+++ b/modules/battle/fight/attribute/fixedpoint.go
@@ -9,25 +9,21 @@ import (
const CARDINAL_NUMBER int = 10000
func NewFixedPoint(value float32) FixedPoint {
- return FixedPoint{
- rawValue: int(math.Round(float64(value * float32(CARDINAL_NUMBER)))),
- }
+ return FixedPoint(math.Round(float64(value * float32(CARDINAL_NUMBER))))
}
-type FixedPoint struct {
- rawValue int
-}
+type FixedPoint int
func (this FixedPoint) SetInt(v int) {
- this.rawValue = v
+ this = FixedPoint(v)
}
func (this FixedPoint) Scalar() float32 {
- return float32(this.rawValue) * 0.0001
+ return float32(this) * 0.0001
}
func (this FixedPoint) ToInt() int {
- return this.rawValue / CARDINAL_NUMBER
+ return int(this) / CARDINAL_NUMBER
}
func (this FixedPoint) ToFloat() float32 {
return this.Scalar()
@@ -39,39 +35,31 @@ func (this FixedPoint) ToString() string {
/// -
func (this FixedPoint) Add(v float32) {
y := NewFixedPoint(v)
- this.rawValue = this.rawValue + y.rawValue
+ this = FixedPoint(int(this) + int(y))
}
/// -
func (this FixedPoint) Reduce(v float32) {
y := NewFixedPoint(v)
- this.rawValue = this.rawValue - y.rawValue
+ this = FixedPoint(int(this) - int(y))
}
/// +
func FixedPoint_Add(x, y FixedPoint) FixedPoint {
- result := FixedPoint{}
- result.rawValue = x.rawValue + y.rawValue
- return result
+ return FixedPoint(x + y)
}
/// -
func FixedPoint_Reduce(x, y FixedPoint) FixedPoint {
- result := FixedPoint{}
- result.rawValue = x.rawValue - y.rawValue
- return result
+ return FixedPoint(x - y)
}
/// *
func FixedPoint_Multiply(x, y FixedPoint) FixedPoint {
- result := FixedPoint{}
- result.rawValue = (x.rawValue * y.rawValue) / CARDINAL_NUMBER
- return result
+ return FixedPoint((int(x) * int(y)) / CARDINAL_NUMBER)
}
/// /
func FixedPoint_Divide(x, y FixedPoint) FixedPoint {
- result := FixedPoint{}
- result.rawValue = (x.rawValue * CARDINAL_NUMBER) / (y.rawValue)
- return result
+ return FixedPoint((int(x) * CARDINAL_NUMBER) / int(y))
}
diff --git a/modules/battle/fight/attribute/healthpoint.go b/modules/battle/fight/attribute/healthpoint.go
index 261a90ed5..5dc622103 100644
--- a/modules/battle/fight/attribute/healthpoint.go
+++ b/modules/battle/fight/attribute/healthpoint.go
@@ -49,6 +49,18 @@ func (this *HealthPoint) MaxValue() int32 {
return int32(this.CurrMaxHp.Value())
}
+func (this *HealthPoint) OnChange() {
+ //先计算当前血量百分比
+ var per = this.Percent()
+ // 当前最大生命值 = 总生命 * ( 1 + 当前最大生命百分比加成 )+ 当前最大生命加成
+ //FightDebug.Log($"增加前属性{(MaxHp.Fixed)}----- {(1 + CurrMaxHpPro.Fixed)}----- {CurrMaxHpAppend.Fixed}");
+ this.CurrMaxHp.SetBase((FixedPoint_Multiply(this.MaxHp.Fixed(), (NewFixedPoint(1)+this.CurrMaxHpPro.Fixed())) + this.CurrMaxHpAppend.Fixed()).Scalar())
+ //计算变化之后的当前血量
+ var curHp = FixedPoint_Multiply(this.CurrMaxHp.Fixed(), NewFixedPoint(per))
+ this.Hp.Set(curHp)
+ //FightDebug.Log($"增加后属性{(MaxHp.Fixed)}----- {(1 + CurrMaxHpPro.Fixed)}----- {CurrMaxHpAppend.Fixed}");
+}
+
///
/// 扣血
///
@@ -61,7 +73,7 @@ func (this *HealthPoint) Minus(value float32) {
/// 加血
///
func (this *HealthPoint) Add(value float32) {
- if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue {
+ if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)) > this.CurrMaxHp.Fixed() {
this.Reset()
} else {
this.Hp.Add(value)
@@ -72,7 +84,7 @@ func (this *HealthPoint) Add(value float32) {
/// 获取治疗溢出值
///
func (this *HealthPoint) Overflow(value float32) float32 {
- if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue {
+ if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)) > this.CurrMaxHp.Fixed() {
return FixedPoint_Divide(FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)), this.CurrMaxHp.Fixed()).Scalar()
}
return 0
@@ -84,3 +96,31 @@ func (this *HealthPoint) Overflow(value float32) float32 {
func (this *HealthPoint) Percent() float32 {
return FixedPoint_Divide(this.Hp.Fixed(), this.CurrMaxHp.Fixed()).Scalar()
}
+
+///
+/// 损失血量百分比
+///
+func (this *HealthPoint) LostPercent() float32 {
+ return FixedPoint_Divide((this.CurrMaxHp.Fixed() - this.Hp.Fixed()), this.CurrMaxHp.Fixed()).Scalar()
+}
+
+///
+/// 指定百分比血量
+///
+func (this *HealthPoint) PercentHealth(pct float32) float32 {
+ return FixedPoint_Multiply(this.CurrMaxHp.Fixed(), NewFixedPoint(pct)).Scalar()
+}
+
+///
+/// 扣除的血量
+///
+func (this *HealthPoint) Deduct() float32 {
+ return FixedPoint(this.CurrMaxHp.Fixed() - this.Hp.Fixed()).Scalar()
+}
+
+///
+/// 是否满血
+///
+func (this *HealthPoint) IsFull() bool {
+ return this.Hp.Fixed() == this.CurrMaxHp.Fixed()
+}
diff --git a/modules/battle/fight/buff/fightbuff.go b/modules/battle/fight/buff/fightbuff.go
new file mode 100644
index 000000000..c4e696a3e
--- /dev/null
+++ b/modules/battle/fight/buff/fightbuff.go
@@ -0,0 +1,9 @@
+package buff
+
+func NewFightBuff() *FightBuff {
+ return &FightBuff{}
+}
+
+type FightBuff struct {
+ FightBuffBase
+}
diff --git a/modules/battle/fight/buff/fightbuffbase.go b/modules/battle/fight/buff/fightbuffbase.go
new file mode 100644
index 000000000..0001c8e87
--- /dev/null
+++ b/modules/battle/fight/buff/fightbuffbase.go
@@ -0,0 +1,41 @@
+package buff
+
+type FightBuffBase struct {
+}
+
+/// 激活Buff
+func (this FightBuffBase) Activate() {
+
+}
+
+/// 结束Buff
+func (this FightBuffBase) End() {
+
+}
+
+/// 增加CD回合数
+func (this FightBuffBase) AddCD(pVal int32) int32 {
+ return 0
+}
+
+/// 减少CD回合数
+func (this FightBuffBase) MinusCD(pVal int32) int32 {
+ return 0
+}
+
+/// 设置CD回合数为新的值
+func (this FightBuffBase) SetCD(newVal int32) int32 {
+ return 0
+}
+
+///
+/// 是否存在指定Tag
+///
+func (this FightBuffBase) HasTag(pTag string) bool {
+ return false
+}
+
+/// 战斗结束时的清理
+func (this FightBuffBase) Clear() {
+
+}
diff --git a/modules/battle/fight/buff/fightpoisonbuff.go b/modules/battle/fight/buff/fightpoisonbuff.go
new file mode 100644
index 000000000..6f9bf931b
--- /dev/null
+++ b/modules/battle/fight/buff/fightpoisonbuff.go
@@ -0,0 +1,9 @@
+package buff
+
+func NewFightPoisonBuff() *FightPoisonBuff {
+ return &FightPoisonBuff{}
+}
+
+type FightPoisonBuff struct {
+ FightBuff
+}
diff --git a/modules/battle/fight/buff/fightpropercentbuff.go b/modules/battle/fight/buff/fightpropercentbuff.go
new file mode 100644
index 000000000..8d5a02fbd
--- /dev/null
+++ b/modules/battle/fight/buff/fightpropercentbuff.go
@@ -0,0 +1,9 @@
+package buff
+
+func NewFightProPercentBuff(proType int, quaType bool) *FightProPercentBuff {
+ return &FightProPercentBuff{}
+}
+
+type FightProPercentBuff struct {
+ FightBuff
+}
diff --git a/modules/battle/fight/buff/fightshieldbuff.go b/modules/battle/fight/buff/fightshieldbuff.go
new file mode 100644
index 000000000..833d99244
--- /dev/null
+++ b/modules/battle/fight/buff/fightshieldbuff.go
@@ -0,0 +1,9 @@
+package buff
+
+func NewFightShieldBuff() *FightShieldBuff {
+ return &FightShieldBuff{}
+}
+
+type FightShieldBuff struct {
+ FightBuff
+}
diff --git a/modules/battle/fight/core/buffstore.go b/modules/battle/fight/core/buffstore.go
index 02beff722..80590e5b4 100644
--- a/modules/battle/fight/core/buffstore.go
+++ b/modules/battle/fight/core/buffstore.go
@@ -1,8 +1,125 @@
package core
+import "go_dreamfactory/modules/battle/fight/buff"
+
type BuffStore struct {
///
/// 已经添加的buff类型
///
HasBuffTypes []int
+ ///
+ /// Buff列表 [BuffId, FightBuff]
+ ///
+ Buffs map[int][]IBuff
+ temp []int
+}
+
+func (this *BuffStore) CreateBuff(pType BuffType) IBuff {
+ switch pType {
+ case BuffType_NONE:
+ break
+ case BuffType_ATKUP:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Atk, false)
+ case BuffType_DEFUP:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Def, false)
+ case BuffType_SPDUP:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Agi, false)
+ case BuffType_CRATEUP:
+ return buff.NewFightProPercentBuff(PropertyType_Add_Cri, false)
+ case BuffType_CRITRESIST:
+ break
+ case BuffType_ATKDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Atk, true)
+ case BuffType_DEFDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Def, true)
+ case BuffType_SPDDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Buff_Per_Agi, true)
+ case BuffType_CRATEDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Add_Cri, true)
+ case BuffType_MISSRATEUP:
+ return buff.NewFightProPercentBuff(PropertyType_LostHold_per, false)
+ case BuffType_SEAR:
+ break
+ case BuffType_INVINCIBILITY:
+ return buff.NewFightBuff()
+ case BuffType_STANDOFF:
+ break
+ case BuffType_STUN:
+ return buff.NewFightBuff()
+ case BuffType_FREEZE:
+ return buff.NewFightBuff()
+ case BuffType_DISEASED:
+ return buff.NewFightBuff()
+ case BuffType_PETRIFICATION:
+ return buff.NewFightBuff()
+ case BuffType_SILENCE:
+ return buff.NewFightBuff()
+ case BuffType_TAUNT:
+ break
+ case BuffType_IMMUNITY:
+ return buff.NewFightBuff()
+ case BuffType_SHIELD:
+ return buff.NewFightShieldBuff()
+ case BuffType_NOTSPEED:
+ return buff.NewFightBuff()
+ case BuffType_DAMREUP:
+ return buff.NewFightProPercentBuff(PropertyType_DamRe_Per, true)
+ case BuffType_HPUP:
+ return buff.NewFightProPercentBuff(PropertyType_Add_Per_Hp, false)
+ case BuffType_EFFHITUP:
+ return buff.NewFightProPercentBuff(PropertyType_Add_EffHit, false)
+ case BuffType_EFFREUP:
+ return buff.NewFightProPercentBuff(PropertyType_Add_EffRe, false)
+ case BuffType_HPDOWN:
+ break
+ case BuffType_EFFHITDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Add_EffHit, true)
+ case BuffType_EFFREDOWN:
+ return buff.NewFightProPercentBuff(PropertyType_Add_EffRe, true)
+ case BuffType_CAUSEDAMUP:
+ return buff.NewFightProPercentBuff(PropertyType_CauseDam_Per, false)
+ case BuffType_POISON:
+ return buff.NewFightPoisonBuff()
+ case BuffType_ATTRTRANS:
+ break
+ case BuffType_UNDEAD:
+ break
+ case BuffType_DEVOUR:
+ break
+ case BuffType_DONTMISS:
+ break
+ case BuffType_NOTGAIN:
+ break
+ case BuffType_NOTCONTROL:
+ break
+ case BuffType_SLEEP:
+ break
+ }
+ return buff.NewFightBuff()
+}
+func (this *BuffStore) ForEach(action func(IBuff)) {
+ this.temp = this.temp[:0]
+ for k, _ := range this.Buffs {
+ this.temp = append(this.temp, k)
+ }
+ for _, v := range this.temp {
+ list := this.Buffs[v]
+ for _, v1 := range list {
+ action(v1)
+ }
+ }
+}
+func (this *BuffStore) HasBuff(judge func(IBuff) bool) bool {
+ for _, v := range this.Buffs {
+ for _, buff := range v {
+ if judge(buff) {
+ return true
+ }
+ }
+ }
+ return false
+}
+
+func (this *BuffStore) Clear() {
+ this.Buffs = make(map[int][]IBuff)
}
diff --git a/modules/battle/fight/core/bufftype.go b/modules/battle/fight/core/bufftype.go
new file mode 100644
index 000000000..749e0d60f
--- /dev/null
+++ b/modules/battle/fight/core/bufftype.go
@@ -0,0 +1,162 @@
+package core
+
+type BuffType int
+
+const (
+ ///
+ /// 无效类型
+ ///
+ BuffType_NONE = 0
+ ///
+ /// 攻击提升
+ ///
+ BuffType_ATKUP = 1
+ ///
+ /// 防御提升
+ ///
+ BuffType_DEFUP = 2
+ ///
+ /// 速度提升
+ ///
+ BuffType_SPDUP = 3
+ ///
+ /// 暴击提升
+ ///
+ BuffType_CRATEUP = 4
+ ///
+ /// 暴击抵抗
+ ///
+ BuffType_CRITRESIST = 5
+ ///
+ /// 攻击下降
+ ///
+ BuffType_ATKDOWN = 6
+ ///
+ /// 防御下降
+ ///
+ BuffType_DEFDOWN = 7
+ ///
+ /// 速度下降
+ ///
+ BuffType_SPDDOWN = 8
+ ///
+ /// 暴击下降
+ ///
+ BuffType_CRATEDOWN = 9
+ ///
+ /// 烙印
+ ///
+ BuffType_SEAR = 10
+ ///
+ /// 失手率提升
+ ///
+ BuffType_MISSRATEUP = 11
+ ///
+ /// 无敌
+ ///
+ BuffType_INVINCIBILITY = 12
+ ///
+ /// 对峙
+ ///
+ BuffType_STANDOFF = 13
+ ///
+ /// 眩晕
+ ///
+ BuffType_STUN = 14
+ ///
+ /// 冰冻
+ ///
+ BuffType_FREEZE = 15
+ ///
+ /// 禁疗
+ ///
+ BuffType_DISEASED = 16
+ ///
+ /// 石化
+ ///
+ BuffType_PETRIFICATION = 17
+ ///
+ /// 沉默
+ ///
+ BuffType_SILENCE = 18
+ ///
+ /// 挑衅
+ ///
+ BuffType_TAUNT = 19
+ ///
+ /// 免疫
+ ///
+ BuffType_IMMUNITY = 20
+ ///
+ /// 护盾
+ ///
+ BuffType_SHIELD = 21
+ ///
+ /// 不可移动
+ ///
+ BuffType_NOTSPEED = 22
+ ///
+ /// 受到伤害降低
+ ///
+ BuffType_DAMREUP = 23
+ ///
+ /// 血量提升
+ ///
+ BuffType_HPUP = 24
+ ///
+ /// 效果命中提升
+ ///
+ BuffType_EFFHITUP = 25
+ ///
+ /// 效果抵抗提升
+ ///
+ BuffType_EFFREUP = 26
+ ///
+ /// 血量下降
+ ///
+ BuffType_HPDOWN = 27
+ ///
+ /// 效果命中下降
+ ///
+ BuffType_EFFHITDOWN = 28
+ ///
+ /// 效果抵抗下降
+ ///
+ BuffType_EFFREDOWN = 29
+ ///
+ /// 伤害提升增加
+ ///
+ BuffType_CAUSEDAMUP = 30
+ ///
+ /// 中毒
+ ///
+ BuffType_POISON = 31
+ ///
+ /// 属性转换
+ ///
+ BuffType_ATTRTRANS = 32
+ ///
+ /// 不死
+ ///
+ BuffType_UNDEAD = 33
+ ///
+ /// 吞噬
+ ///
+ BuffType_DEVOUR = 34
+ ///
+ /// 不会失手
+ ///
+ BuffType_DONTMISS = 35
+ ///
+ /// 不能获得增益buff
+ ///
+ BuffType_NOTGAIN = 36
+ ///
+ /// 免疫控制
+ ///
+ BuffType_NOTCONTROL = 37
+ ///
+ /// 睡眠
+ ///
+ BuffType_SLEEP = 38
+)
diff --git a/modules/battle/fight/core/core.go b/modules/battle/fight/core/core.go
index 8c6967d9c..9bb1255b0 100644
--- a/modules/battle/fight/core/core.go
+++ b/modules/battle/fight/core/core.go
@@ -48,7 +48,7 @@ type (
///
/// 技能id
/// 技能等级
- AddSkill(skillId int32, skillLv int32) ISkil
+ AddSkill(skillId int32, skillLv int32) ISkill
/// 获取行动令牌
StartAction()
/// 结束行动令牌
@@ -71,7 +71,7 @@ type (
/// 获取下一个技能id
GetNextSkillId() int32
/// 获取后续子技能
- GetAfterAtk(skillId int) ISkil
+ GetAfterAtk(skillId int) ISkill
/// 触发SkillId技能,选择的目标是TargetRid
EmitSkill(skillId int32, targetRid []int32)
/// 自身的 Buff 和 被动 是否有指定标签
@@ -85,7 +85,7 @@ type (
AutoEmitSkill(pFightRole IFightRole)
}
//技能对象
- ISkil interface {
+ ISkill interface {
///
/// 获取技能配置信息
///
@@ -120,6 +120,12 @@ type (
///
SendSkillLog()
}
+ IAfterSkill interface {
+ ///
+ /// 战斗结束时的清理
+ ///
+ Clear()
+ }
//Buff对象
IBuff interface {
/// 激活Buff
diff --git a/modules/battle/fight/core/fightroledata.go b/modules/battle/fight/core/fightroledata.go
index 67aa1ebe3..d94190f13 100644
--- a/modules/battle/fight/core/fightroledata.go
+++ b/modules/battle/fight/core/fightroledata.go
@@ -104,6 +104,10 @@ type FightRoleData struct {
///region 技能相关-----------------------------------------------------------------------
///
+ /// 技能信息 id:lv
+ ///
+ SkillsInfo []ISkill
+ ///
/// 最后一次选择的skillAtk类技能
///
LastSkillId int32
@@ -117,10 +121,19 @@ type FightRoleData struct {
///
/// 在角色初始化时,会根据SkillsInfo实例化对应的技能保存于此
///
- Skills map[int32]ISkil
+ Skills map[int32]ISkill
+ ///
+ /// AfterAtk集合
+ ///
+ AfterSkills map[int]IAfterSkill
///
/// BUFF集合
///
BuffStore *BuffStore
+
+ ///
+ /// 被动技能集合
+ ///
+ PassiveStore PassiveStore
}
diff --git a/modules/battle/fight/core/passivestore.go b/modules/battle/fight/core/passivestore.go
new file mode 100644
index 000000000..a5a9c2f57
--- /dev/null
+++ b/modules/battle/fight/core/passivestore.go
@@ -0,0 +1,31 @@
+package core
+
+import "go_dreamfactory/modules/battle/fight/passive"
+
+type PassiveStore struct {
+ Passives map[int]passive.IFightPassive
+ temp []int
+}
+
+func (this *PassiveStore) CreatePassive(pType string) passive.IFightPassive {
+ switch pType {
+ case "CallSkillPas":
+ return passive.NewFightCallSkillPas()
+ }
+ return nil
+}
+func (this *PassiveStore) ForEach(action func(fp passive.IFightPassive)) {
+ this.temp = make([]int, 0)
+ for k, _ := range this.Passives {
+ this.temp = append(this.temp, k)
+ }
+ for _, v := range this.temp {
+ action(this.Passives[v])
+ }
+}
+func (this *PassiveStore) RemovePassive(id int) {
+
+}
+func (this *PassiveStore) Clear() {
+ this.Passives = make(map[int]passive.IFightPassive)
+}
diff --git a/modules/battle/fight/core/propertytype.go b/modules/battle/fight/core/propertytype.go
new file mode 100644
index 000000000..dc471786a
--- /dev/null
+++ b/modules/battle/fight/core/propertytype.go
@@ -0,0 +1,174 @@
+package core
+
+type PropertyType int
+
+const (
+ ///
+ /// 总生命
+ ///
+ PropertyType_Total_Hp = 1
+ ///
+ /// 当前总生命
+ ///
+ PropertyType_NowTotal_Hp = 2
+ ///
+ /// 当前生命
+ ///
+ PropertyType_NowHp = 3
+ ///
+ /// 总攻击
+ ///
+ PropertyType_Total_Atk = 4
+ ///
+ /// 总防御
+ ///
+ PropertyType_Total_Def = 5
+ ///
+ /// 总速度
+ ///
+ PropertyType_Total_Agi = 6
+ ///
+ /// 总暴击率
+ ///
+ PropertyType_Total_Cri = 7
+ ///
+ /// 总暴击伤害
+ ///
+ PropertyType_Total_CriDam = 8
+ ///
+ /// 总效果命中
+ ///
+ PropertyType_Total_EffHit = 9
+ ///
+ /// 总效果抵抗
+ ///
+ PropertyType_Total_EffRe = 10
+ ///
+ /// 已损失生命值
+ ///
+ PropertyType_LostHp = 11
+ ///
+ /// 已损失生命值百分比
+ ///
+ PropertyType_LostPerHp = 12
+ ///
+ /// 当前生命百分比
+ ///
+ PropertyType_NowHp_Per = 13
+ ///
+ /// 附加生命(修改属性类型从这里开始)
+ ///
+ PropertyType_Add_Hp = 14
+ ///
+ /// 附加百分比生命
+ ///
+ PropertyType_Add_Per_Hp = 15
+ ///
+ /// BUFF附加生命
+ ///
+ PropertyType_Buff_Hp = 16
+ ///
+ /// BUFF附加百分比生命
+ ///
+ PropertyType_Buff_Per_Hp = 17
+ ///
+ /// 附加攻击
+ ///
+ PropertyType_Add_Atk = 18
+ ///
+ /// 附加百分比攻击
+ ///
+ PropertyType_Add_Per_Atk = 19
+ ///
+ /// BUFF附加攻击
+ ///
+ PropertyType_Buff_Atk = 20
+ ///
+ /// BUFF附加百分比攻击
+ ///
+ PropertyType_Buff_Per_Atk = 21
+ ///
+ /// 附加防御
+ ///
+ PropertyType_Add_Def = 22
+ ///
+ /// 附加百分比防御
+ ///
+ PropertyType_Add_Per_Def = 23
+ ///
+ /// BUFF附加防御
+ ///
+ PropertyType_Buff_Def = 24
+ ///
+ /// BUFF附加百分比防御
+ ///
+ PropertyType_Buff_Per_Def = 25
+ ///
+ /// 附加速度
+ ///
+ PropertyType_Add_Agi = 26
+ ///
+ /// 附加百分比速度
+ ///
+ PropertyType_Add_Per_Agi = 27
+ ///
+ /// BUFF附加速度
+ ///
+ PropertyType_Buff_Agi = 28
+ ///
+ /// BUFF附加百分比速度
+ ///
+ PropertyType_Buff_Per_Agi = 29
+ ///
+ /// 附加暴击率
+ ///
+ PropertyType_Add_Cri = 30
+ ///
+ /// 附加暴击伤害
+ ///
+ PropertyType_Add_CriDam = 31
+ ///
+ /// 附加效果命中
+ ///
+ PropertyType_Add_EffHit = 32
+ ///
+ /// 附加效果抵抗
+ ///
+ PropertyType_Add_EffRe = 33
+ ///
+ /// 行动值
+ ///
+ PropertyType_ActValue = 34
+ ///
+ /// 伤害减免(buff附加百分比)
+ ///
+ PropertyType_DamRe_Per = 35
+ ///
+ /// 伤害提升(buff附加百分比)
+ ///
+ PropertyType_CauseDam_Per = 36
+ ///
+ /// 伤害减免(固定值)
+ ///
+ PropertyType_DamRe = 37
+ ///
+ /// 伤害提升(固定值)
+ ///
+ PropertyType_CauseDam = 38
+ ///
+ /// 失手率buff增加百分比
+ ///
+ PropertyType_LostHold_per = 39
+ ///
+ /// 会心率buff增加百分比
+ ///
+ PropertyType_UnderStand_per = 40
+ ///
+ /// 治疗加成
+ ///
+ PropertyType_TreAdd = 41
+ ///
+ /// 受疗加成
+ ///
+ PropertyType_BeTreAdd = 42
+)
diff --git a/modules/battle/fight/fightrole.go b/modules/battle/fight/fightrole.go
index 6a895b33b..8da6fd579 100644
--- a/modules/battle/fight/fightrole.go
+++ b/modules/battle/fight/fightrole.go
@@ -1,8 +1,10 @@
package fight
import (
+ "fmt"
"go_dreamfactory/modules/battle/fight/attribute"
"go_dreamfactory/modules/battle/fight/core"
+ "go_dreamfactory/modules/battle/fight/passive"
cfg "go_dreamfactory/sys/configure/structs"
)
@@ -52,3 +54,36 @@ func (this *FightRole) IsDead() bool {
func (this *FightRole) Dead() {
this.data.ALive = false
}
+
+///
+/// 战斗结束时的清理
+///
+func (this *FightRole) Clear() {
+ //清理所有技能
+ for _, v := range this.data.Skills {
+ v.Clear()
+ }
+
+ //清理所有攻击后技能
+ for _, v := range this.data.AfterSkills {
+ v.Clear()
+ }
+
+ //清理所有buff
+ this.data.BuffStore.ForEach(func(buff core.IBuff) {
+ buff.Clear()
+ })
+ // //清理所有被动就能
+ this.data.PassiveStore.ForEach(func(fp passive.IFightPassive) {
+ fp.Clear()
+ })
+
+ //清空
+ this.data.Skills = make(map[int32]core.ISkill)
+ this.data.AfterSkills = make(map[int]core.IAfterSkill)
+ this.data.BuffStore.Clear()
+ this.data.PassiveStore.Clear()
+}
+func (this *FightRole) ToString() string {
+ return fmt.Sprintf("[%s]", this.data.Name)
+}
diff --git a/modules/battle/fight/passive/fightcallskillpas.go b/modules/battle/fight/passive/fightcallskillpas.go
new file mode 100644
index 000000000..b860cdfec
--- /dev/null
+++ b/modules/battle/fight/passive/fightcallskillpas.go
@@ -0,0 +1,12 @@
+package passive
+
+func NewFightCallSkillPas() IFightPassive {
+ return &FightCallSkillPas{}
+}
+
+///
+/// 通用调用技能和子技能
+///
+type FightCallSkillPas struct {
+ FightPassive
+}
diff --git a/modules/battle/fight/passive/fightpassive.go b/modules/battle/fight/passive/fightpassive.go
new file mode 100644
index 000000000..29d7ab04e
--- /dev/null
+++ b/modules/battle/fight/passive/fightpassive.go
@@ -0,0 +1,12 @@
+package passive
+
+type IFightPassive interface {
+ Clear()
+}
+
+type FightPassive struct {
+}
+
+func (this *FightPassive) Clear() {
+
+}
diff --git a/modules/battle/fight/skill/fightafterskill.go b/modules/battle/fight/skill/fightafterskill.go
new file mode 100644
index 000000000..17194d783
--- /dev/null
+++ b/modules/battle/fight/skill/fightafterskill.go
@@ -0,0 +1,15 @@
+package skill
+
+type FightAfterSkill struct {
+ ///
+ /// 技能效果是否生效
+ ///
+ TakeEffect bool
+}
+
+///
+/// 战斗结束时的清理
+///
+func (this *FightAfterSkill) Clear() {
+ this.TakeEffect = false
+}
diff --git a/modules/hero/api_resonance.go b/modules/hero/api_resonance.go
index 7ed0152f8..9fba7fe8f 100644
--- a/modules/hero/api_resonance.go
+++ b/modules/hero/api_resonance.go
@@ -83,6 +83,13 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
if code != pb.ErrorCode_Success {
return
}
+
+ for k, _ := range szCostHero {
+ if k == _hero.Id {
+ _hero.SameCount = _costMaphero[k].SameCount
+ break
+ }
+ }
if _hero.SameCount > 1 {
_hero.SameCount -= 1
newHero := this.module.modelHero.CloneNewHero(_hero)