This commit is contained in:
wuwenbo 2026-06-06 21:59:28 +08:00
commit 70cc40a475
104 changed files with 12018 additions and 6682 deletions

View File

@ -27,6 +27,8 @@ This repository is a Unity 2022.3 LTS / ET Framework turn-based strategy game. T
- Do not make UI-only, AI-only, or network-receiver-only data mutations that bypass the shared action layer unless the existing design for that subsystem already does so.
- For multiplayer-safe logic, avoid `UnityEngine.Random`, wall-clock time, unordered iteration, and direct `Main.MapData` assumptions inside simulated or synchronized execution paths.
- For Excel-backed keys such as `UnitFullType`, `SkillType` level pairs, resources, terrain, and tech atoms, inspect the actual config rows before coding. Do not infer current data from similar entries.
- Game-facing non-debug text must not be hardcoded in code. Add or reuse fields in the appropriate DataAssets/data tables, then read them through the existing data/table and localization path.
- Do not modify export-flow outputs such as `Unity/Assets/Resources/Export/*`, `Tools/Multilingual.xlsx`, or `Tools/MultilingualTxt.txt` unless the user explicitly asks for export/import workflow changes. These files are produced by the user's manual export process.
- For multilingual translation, keep target-language text close to the Chinese source length where practical. Preserve meaning first, but prefer concise game UI wording; trim only explanatory redundancy when a common in-game localization style allows it. Do not delete core differentiating terms just to shorten text: `房间名称` must preserve the `Name` meaning (`Room Name`, not `Room`), and `玩家席位` must preserve the player/slot distinction (`Player Slots`, not just `Slots`) unless the UI context independently supplies that missing meaning. Treat short UI status labels as labels, not explanatory sentences: for example, translate `密码房间` as `Private` / `鍵付き` / `잠금방`, not `Password-Protected Room` / `パスワード付きルーム` / `비밀번호 방`.
- Unity `.meta` files are part of source control and must be preserved when assets move or are created.
- Generated files should only be edited through the project generator or documented editor workflow.

View File

@ -1,5 +1,5 @@
{
"nextId": 314,
"nextId": 317,
"bugs": [
{
"id": 2,
@ -3156,6 +3156,39 @@
"longTerm": false,
"createdAt": 1780589378988,
"updatedAt": 1780589378988
},
{
"id": 314,
"title": "招魂_Official: 06-05 06:24:09 bug反馈描述上说为附近敌方单位赋予一层恐惧 招魂_Official: 06-05 06:24:20 但实际上就算结盟了也会被上恐惧 招魂_Official: 06-05 06:24:44 导致恋恋跑着跑着把敌人和盟军全当减速带踩死了",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"longTerm": false,
"createdAt": 1780634066941,
"updatedAt": 1780634066941
},
{
"id": 315,
"title": "小恶魔被恐惧炸死进不了二阶段",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"longTerm": false,
"createdAt": 1780647613219,
"updatedAt": 1780647613219
},
{
"id": 316,
"title": "啥时候公示下资源生成系数",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"longTerm": false,
"createdAt": 1780654816747,
"updatedAt": 1780654816747
}
]
}

View File

@ -1,5 +1,5 @@
{
"nextId": 8,
"nextId": 10,
"suggestions": [
{
"id": 1,
@ -63,6 +63,24 @@
"module": "",
"createdAt": 1780493042134,
"updatedAt": 1780493042134
},
{
"id": 8,
"title": "小提议,可以加一个英雄总次数,在三星后,英雄成就界面显示一个“出战此英雄并胜利的总次数” 。我觉得这样的话,会让玩家更有成就感和动力(",
"description": "",
"status": "open",
"module": "",
"createdAt": 1780657783648,
"updatedAt": 1780657783648
},
{
"id": 9,
"title": "丸子那边单子没结",
"description": "",
"status": "open",
"module": "",
"createdAt": 1780667177586,
"updatedAt": 1780667177586
}
]
}

Binary file not shown.

View File

@ -1,97 +1,186 @@
20142%$#@!True%$#@!<color=orange>征服模式</color>:厮杀到最后的征服者获得胜利!<br><color=orange>30回合模式</color>30回合按照得分决出胜负<br><color=orange>自定义模式</color>:你说了算吧!%$#@!<color=orange>征服模式</color>:廝殺到最後的征服者獲勝!<br><color=orange>30回合模式</color>30回合後按分數決勝負<br><color=orange>自訂模式</color>:你說了算!%$#@!<color=orange>Conquest</color>: Last conqueror standing wins!<br><color=orange>30 Turns</color>: Winner by score after 30 turns!<br><color=orange>Custom</color>: Your rules!%$#@!<color=orange>征服モード</color>:最後まで勝ち残った征服者が勝利!<br><color=orange>30ターンモード</color>30ターン後、スコアで勝敗決定<br><color=orange>カスタムモード</color>:ルールは自由!%$#@!<color=orange>정복 모드</color>: 마지막까지 남은 정복자가 승리!<br><color=orange>30턴 모드</color>: 30턴 후 점수로 승패 결정!<br><color=orange>커스텀 모드</color>: 원하는 대로!%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20143%$#@!True%$#@!仅在自定义模式下生效。“征服”要求击杀所有敌人“30回合”则会在限定时间后通过得分判胜负“无尽”则永远不会结束游戏。%$#@!僅在自訂模式生效。「征服」需擊殺所有敵人「30回合」在限時後按分數決勝負「無盡」則永不結束遊戲。%$#@!Only applies in Custom. Conquest requires eliminating all enemies. 30 Turns decides by score after the limit. Endless never ends the game.%$#@!カスタムモードでのみ有効。「征服」は全敵撃破、「30ターン」は制限後にスコア判定、「エンドレス」はゲームが終わりません。%$#@!커스텀 모드에서만 적용됩니다. ‘정복’은 모든 적 처치, 30턴은 제한 후 점수 판정, ‘무한’은 게임이 끝나지 않습니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20144%$#@!True%$#@!帝国开始流通新的**<奢侈品>****<回合文化值>**+1**<回合金币>**+1%$#@!帝國開始流通新的**<奢侈品>****<回合文化值>**+1**<回合金幣>**+1%$#@!A new **<Luxury Goods>** circulates in the empire: **<Culture per Turn>**+1, **<Gold per Turn>**+1%$#@!帝国に新たな**<贅沢品>**が流通し、**<ターン毎文化値>**+1、**<ターン毎ゴールド>**+1%$#@!제국에 새로운 **<사치품>**이 유통되어 **<턴당 문화>**+1, **<턴당 골드>**+1%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20145%$#@!True%$#@!城市升级至Lv.6及以上时,可选择召唤帝国特色巨人单位**<小恶魔祭司>**,其猫神形态能够治疗友军,死亡后转化为狮神形态具备强大的杀伤力。与其他红魔馆英雄协同作战时,可被视作**<英雄单位>**触发相关特殊效果。%$#@!城市升至Lv.6及以上時,可選擇召喚帝國特色巨人單位**<小惡魔祭司>**。其貓神形態可治療友軍,死亡後轉為獅神形態並具備強大殺傷力。與其他紅魔館英雄協同作戰時,可視為**<英雄單位>**觸發相關特殊效果。%$#@!When a city reaches Lv.6+, you may summon the empire's unique Giant unit **<Koakuma Priest>**. Its Cat God form heals allies; after death it becomes a high-damage Lion God form. When fighting with other Scarlet Devil Mansion heroes, it counts as a **<Hero Unit>** for related effects.%$#@!都市がLv.6以上になる時、帝国固有の巨人ユニット**<コアクマ司祭>**を召喚できる。猫神形態は味方を治療し、死亡後は高火力の獅神形態に変化する。他の紅魔館英雄と共闘する時、**<英雄ユニット>**として関連効果を発動できる。%$#@!도시가 Lv.6 이상이 되면 제국 고유 거인 유닛 **<코아쿠마 사제>**를 소환할 수 있습니다. 고양이 신 형태는 아군을 치료하고, 사망 후 강력한 사자 신 형태로 변합니다. 다른 홍마관 영웅과 함께 싸울 때 **<영웅 유닛>**으로 간주되어 관련 효과를 발동합니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20146%$#@!True%$#@!城市升级至Lv.6及以上时,可选择召唤帝国特色巨人单位**<竹林狼上校>**,具备强大的攻防力量,在竹林中还可进行移动攻击。%$#@!城市升至Lv.6及以上時,可選擇召喚帝國特色巨人單位**<竹林狼上校>**。其攻防能力強大,在竹林中還可移動攻擊。%$#@!When a city reaches Lv.6+, you may summon the empire's unique Giant unit **<Bamboo Forest Wolf Colonel>**. It has strong attack and defense, and can move-attack in Bamboo Forest.%$#@!都市がLv.6以上になる時、帝国固有の巨人ユニット**<竹林の狼大佐>**を召喚できる。攻防に優れ、竹林では移動攻撃も可能。%$#@!도시가 Lv.6 이상이 되면 제국 고유 거인 유닛 **<대나무숲 늑대 대령>**을 소환할 수 있습니다. 강한 공격과 방어를 지니며, 대나무숲에서는 이동 공격도 가능합니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20147%$#@!True%$#@!城市升级至Lv.6及以上时,可选择召唤帝国特色巨人单位**<御射宫司大人>**,具备高攻击力和高机动性,在英雄**<洩矢诹访子>**附近时还能激发额外的力量。%$#@!城市升至Lv.6及以上時,可選擇召喚帝國特色巨人單位**<御射宮司大人>**。其攻擊力與機動性都很高,在英雄**<洩矢諏訪子>**附近時還能激發額外力量。%$#@!When a city reaches Lv.6+, you may summon the empire's unique Giant unit **<Lord Mishaguji>**. It has high attack and mobility, and gains extra power near the hero **<Yasaka Suwako>**.%$#@!都市がLv.6以上になる時、帝国固有の巨人ユニット**<御射宮司様>**を召喚できる。高い攻撃力と機動性を持ち、英雄**<洩矢諏訪子>**の近くではさらなる力を発揮する。%$#@!도시가 Lv.6 이상이 되면 제국 고유 거인 유닛 **<미샤구지 님>**을 소환할 수 있습니다. 높은 공격력과 기동성을 지니며, 영웅 **<야사카 스와코>** 근처에서는 추가 힘을 발휘합니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20148%$#@!True%$#@!城市升级至Lv.6及以上时,可选择训练帝国特色巨人单位**<摩诃毗陀罗>**。%$#@!城市升至Lv.6及以上時,可選擇訓練帝國特色巨人單位**<摩訶毗陀羅>**。%$#@!When a city reaches Lv.6+, you may train the empire's unique Giant unit **<Maha-Vetala>**.%$#@!都市がLv.6以上になる時、帝国固有の巨人ユニット**<マハー・ヴェターラ>**を訓練できる。%$#@!도시가 Lv.6 이상이 되면 제국 고유 거인 유닛 **<마하베탈라>**를 훈련할 수 있습니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
20149%$#@!True%$#@![版本 V0.7.2c]
发布日期:26.5.31
本次更新完成了13项bug修复与优化其余bug我们仍在全力修复中。
21037%$#@!True%$#@!当前等级数额%$#@!目前等級數額%$#@!Current Level Value%$#@!現在レベル値%$#@!현재 레벨 수치%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!True%$#@!%$#@!!@#$%21038%$#@!True%$#@!妹红阵亡后变为火焰状态,火焰不可攻击反击,移动时造成溅射伤害。若火焰存活回合数达到**<当前等级数额>**,妹红在火焰处复活。火焰消失时不会重置复活冷却时间。%$#@!妹紅陣亡後變為火焰狀態,火焰不可攻擊反擊,移動時造成濺射傷害。若火焰存活回合數達到**<目前等級數額>**,妹紅在火焰處復活。火焰消失時不會重置復活冷卻時間。%$#@!After Mokou falls, she becomes a flame. The flame cannot attack or counterattack, and deals splash damage when moving. If the flame survives for **<Current Level Value>** turns, Mokou revives at the flame's location. When the flame disappears, it does not reset the revival cooldown.%$#@!妹紅が戦闘不能になると炎状態になる。炎は攻撃も反撃もできず、移動時に範囲ダメージを与える。炎の生存ターン数が**<現在レベル値>**に達すると、妹紅は炎の位置で復活する。炎が消えても復活クールダウンはリセットされない。%$#@!모코우가 전사하면 화염 상태가 됩니다. 화염은 공격하거나 반격할 수 없으며, 이동 시 범위 피해를 줍니다. 화염의 생존 턴 수가 **<현재 레벨 수치>**에 도달하면 모코우가 화염 위치에서 부활합니다. 화염이 사라져도 부활 재사용 대기시간은 초기화되지 않습니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%21039%$#@!True%$#@![版本 V0.7.3]
发布日期:26.6.5
本次对游戏机制进行了部分调整并修复了若干bug。有部分疑难bug和若干小型错误我们仍在追查以及按顺序逐个修复中。
---------[游戏机制调整]-------------
注意:本次调整主要针对游戏的一些基础设计,对于英雄模块,进行了少量调整,但并非最终调整。
1.对王阶、后阶、车阶英雄的基础职阶特色做了调整。
2.对部分英雄的升级任务做了少量调整。
3.对部分英雄的初始数值进行少量调整。
4.调整城市Lv.3升级时奖励,将“要塞"移入“防御”科技,由“书院”(获得2文化点)替换原“要塞”选项
5.遗迹新增随机奖励条目4文化点
6.调整了所有法典的文化点消耗,雕像则改为通过金币解锁。
7.调整了“封建采邑”法典效果,现改为能够消耗文化值升级普通单位
8.次发、三发英雄的初始等级调整为Lv.2,复活时间调整为与等级相关,可消耗文化点提前复活
---------[bug修复与优化]-------------
1.修复了东风谷早苗掷签范围伤害击杀单位后图像残留的bug
2.修复了铃仙触发幻影齐射并击杀单位时可能产生图像残留的bug
3.修复了隐脉地块可能不显示的bug
4.修复了隐脉地块可能生成在水域或者山脉的bug
5.修复了星熊勇仪在推人时可能产生单位重叠的bug
6.修复了探索者发现结界塔时城市经验动画播放错误的bug
7.修复了发起主动攻击但未造成伤害的某些情况下和平奇观计数不会清零的bug
8.优化了拖动镜头时可能镜头强制移会起始点的bug
9.修复了奇观图鉴页面成就星星总数显示错误的bug
10.修复了部分科技/技能的描述错误
11.修复了因为点击过快/倒计时结束等问题导致城市升级选项被跳过的bug
12.修复了学者转化竹林狼上校后错误触发满月buff的bug
13.修复了联机房间举报房间的按钮跳转错误的bug%$#@![版本 V0.7.2c]
發布日期:26.5.31
本次更新完成了13項bug修復與優化其餘bug我們仍在全力修復中。
1.修复了建成奇观后"历史时刻"模块提示出错的bug
2.修复了部分可能导致金币数额显示错误的bug
3.修复了十六夜咲夜与芙兰朵露连续击杀时可能导致联机不同步的bug
---------[bug修復與優化]-------------
1.修復了東風谷早苗擲籤範圍傷害擊殺單位後圖像殘留的bug
2.修復了鈴仙觸發幻影齊射並擊殺單位時可能產生圖像殘留的bug
3.修復了隱脈地塊可能不顯示的bug
4.修復了隱脈地塊可能生成在水域或山脈的bug
5.修復了星熊勇儀推人時可能產生單位重疊的bug
6.修復了探索者發現結界塔時城市經驗動畫播放錯誤的bug
7.修復了發起主動攻擊但未造成傷害時某些情況下和平奇觀計數不會清零的bug
8.優化了拖動鏡頭時鏡頭可能被強制移回起始點的bug
9.修復了奇觀圖鑑頁面成就星星總數顯示錯誤的bug
10.修復了部分科技/技能描述錯誤
11.修復了因點擊過快/倒計時結束等問題導致城市升級選項被跳過的bug
12.修復了學者轉化竹林狼上校後錯誤觸發滿月buff的bug
13.修復了聯機房間舉報房間按鈕跳轉錯誤的bug%$#@![Version V0.7.2c]
Release Date: 26.5.31
This update includes 13 bug fixes and optimizations. We are still working hard on the remaining bugs.
---------[疑难bug处理]-------------
1.对于单位死亡但是贴图不消失的bug问题目前采取了在发生问题后自动识别上报并在下一个行动前自动清理图像错误的后置补救方式来应对。我们仍在继续跟踪排查原因
2.对于陆地上可能出现船只的bug问题目前采取了在发生问题后自动识别上报的方式我们仍在继续跟踪排查原因%$#@![版本 V0.7.3]
發布日期:26.6.5
本次對遊戲機制進行了部分調整,並修復了若干 bug。有部分疑難 bug 和若干小型錯誤,我們仍在追查,並會按順序逐個修復。
---------[Bug Fixes & Optimizations]-------------
1. Fixed image remnants after Kochiya Sanae's omikuji area damage killed a unit
2. Fixed possible image remnants when Reisen triggered Phantom Volley and killed a unit
3. Fixed Hidden Vein tiles sometimes not displaying
4. Fixed Hidden Vein tiles sometimes spawning on water or mountains
5. Fixed possible unit overlap when Yuugi Hoshiguma pushed units
6. Fixed the wrong city EXP animation when an Explorer discovered a Barrier Tower
7. Fixed Peace Wonder counters not clearing in some cases after an active attack dealt no damage
8. Optimized an issue where dragging the camera could force it back to the start point
9. Fixed the wrong total achievement star count on the Wonder Codex page
10. Fixed incorrect descriptions for some techs/skills
11. Fixed city upgrade choices being skipped due to rapid clicks/countdown ending
12. Fixed Scholars wrongly triggering the Full Moon buff after transforming into Bamboo Forest Wolf Colonel
13. Fixed the wrong redirect for the report-room button in multiplayer rooms%$#@![バージョン V0.7.2c]
リリース日:26.5.31
今回の更新では13件のbug修正と最適化を行いました。残りのbugも引き続き全力で修正中です。
---------[遊戲機制調整]-------------
注意:本次調整主要針對遊戲的一些基礎設計。英雄模組進行了少量調整,但並非最終調整。
1.對王階、后階、車階英雄的基礎職階特色做了調整。
2.對部分英雄的升級任務做了少量調整。
3.對部分英雄的初始數值進行少量調整。
4.調整城市 Lv.3 升級時獎勵將「要塞」移入「防禦」科技由「書院」獲得2文化點替換原「要塞」選項
5.遺跡新增隨機獎勵條目4文化點
6.調整了所有法典的文化點消耗,雕像則改為透過金幣解鎖。
7.調整了「封建采邑」法典效果,現改為能夠消耗文化值升級普通單位
8.次發、三發英雄的初始等級調整為 Lv.2,復活時間調整為與等級相關,可消耗文化點提前復活
---------[bug修正と最適化]-------------
1.東風谷早苗のおみくじ範囲ダメージでユニットを撃破した後、画像が残るbugを修正
2.鈴仙が幻影斉射を発動してユニットを撃破した時、画像が残る場合があるbugを修正
3.隠脈タイルが表示されない場合があるbugを修正
4.隠脈タイルが水域や山脈に生成される場合があるbugを修正
5.星熊勇儀が押し出しを行う時、ユニットが重なる場合があるbugを修正
6.探索者が結界塔を発見した時、都市経験値アニメーションが誤って再生されるbugを修正
7.能動攻撃を行ったがダメージを与えなかった一部の場合に、平和奇観のカウントがリセットされないbugを修正
8.カメラをドラッグした時、開始地点へ強制的に戻る場合があるbugを最適化
9.奇観図鑑ページの実績星総数が誤って表示されるbugを修正
10.一部の技術/スキル説明の誤りを修正
11.クリックが速すぎる/カウントダウン終了などにより、都市アップグレード選択肢がスキップされるbugを修正
12.学者が竹林の狼大佐へ変化した後、満月buffを誤って発動するbugを修正
13.マルチプレイ部屋の部屋通報ボタンの遷移先が誤るbugを修正%$#@![버전 V0.7.2c]
출시일:26.5.31
이번 업데이트에서는 bug 수정 및 최적화 13건을 완료했습니다. 남은 bug도 계속 최선을 다해 수정 중입니다.
---------[bug 修復與優化]-------------
1.修復了建成奇觀後「歷史時刻」模組提示出錯的 bug
2.修復了部分可能導致金幣數額顯示錯誤的 bug
3.修復了十六夜咲夜與芙蘭朵露連續擊殺時可能導致聯機不同步的 bug
---------[疑難 bug 處理]-------------
1.對於單位死亡但是貼圖不消失的 bug 問題,目前採取了在發生問題後自動識別上報,並在下一個行動前自動清理圖像錯誤的後置補救方式來應對。我們仍在繼續追蹤排查原因
2.對於陸地上可能出現船隻的 bug 問題,目前採取了在發生問題後自動識別上報的方式,我們仍在繼續追蹤排查原因%$#@![Version V0.7.3]
Release Date: 26.6.5
This update makes several gameplay system adjustments and fixes a number of bugs. We are still investigating some difficult bugs and smaller issues, and will fix them one by one in order.
---------[Gameplay System Adjustments]-------------
Note: This update mainly targets some of the game's basic design. The hero module received a few adjustments, but these are not the final adjustments.
1. Adjusted the basic class traits of King-tier, Queen-tier, and Rook-tier heroes.
2. Made minor adjustments to some heroes' upgrade tasks.
3. Made minor adjustments to some heroes' initial stats.
4. Adjusted the reward for upgrading a city to Lv.3. "Fortress" has been moved to the "Defense" tech, and the original "Fortress" option has been replaced by "Academy" (gain 2 Culture).
5. Added a new random ruin reward: 4 Culture.
6. Adjusted the Culture cost of all Codices. Statues are now unlocked with Gold.
7. Adjusted the effect of the "Feudal Fief" Codex. It can now spend Culture to upgrade normal units.
8. The starting level of second-wave and third-wave heroes has been adjusted to Lv.2. Revival time is now level-based, and Culture can be spent to revive early.
---------[Bug Fixes and Optimizations]-------------
1. Fixed a bug where the "Historic Moment" module could show incorrect prompts after a Wonder was completed.
2. Fixed some bugs that could cause Gold amounts to display incorrectly.
3. Fixed a bug where consecutive kills by Sakuya Izayoi and Flandre could cause multiplayer desyncs.
---------[Difficult Bug Handling]-------------
1. For the issue where a unit dies but its sprite does not disappear, the current workaround is to automatically detect and report the issue after it occurs, then automatically clean up the image error before the next action. We are still tracking and investigating the cause.
2. For the issue where ships may appear on land, the current workaround is to automatically detect and report the issue after it occurs. We are still tracking and investigating the cause.%$#@![バージョン V0.7.3]
リリース日:26.6.5
今回の更新ではゲームシステムの一部を調整し、いくつかの bug を修正しました。一部の難解な bug と小さな不具合については、引き続き調査し、順番に修正していきます。
---------[ゲームシステム調整]-------------
注意:今回の調整は主にゲームの基礎設計を対象としています。ヒーローモジュールにも少量の調整を行いましたが、最終調整ではありません。
1.王階、后階、車階ヒーローの基本職階特性を調整しました。
2.一部ヒーローのアップグレード任務を少量調整しました。
3.一部ヒーローの初期ステータスを少量調整しました。
4.都市 Lv.3 アップグレード時の報酬を調整し、「要塞」を「防御」技術へ移動しました。元の「要塞」選択肢は「書院」文化値2を獲得に置き換わります
5.遺跡のランダム報酬項目を追加文化値4
6.すべての法典の文化値コストを調整し、彫像はゴールドでアンロックする形に変更しました。
7.「封建采邑」法典の効果を調整し、文化値を消費して通常ユニットをアップグレードできるようにしました
8.次発、三発ヒーローの初期レベルを Lv.2 に調整しました。復活時間はレベルに応じる形に調整され、文化値を消費して早期復活できます
---------[bug 修正と最適化]-------------
1.奇観完成後に「歴史的瞬間」モジュールの表示が誤る bug を修正しました
2.ゴールド量が誤って表示される可能性のある一部 bug を修正しました
3.十六夜咲夜とフランドールが連続撃破した際、マルチプレイで同期ずれが発生する可能性のある bug を修正しました
---------[難解な bug への対応]-------------
1.ユニットが死亡しても画像が消えない bug については、現在、発生後に自動検出して報告し、次の行動前に画像エラーを自動で清理する後処理方式で対応しています。原因については引き続き追跡調査しています
2.陸地上に船が出現する可能性のある bug については、現在、発生後に自動検出して報告する方式で対応しています。原因については引き続き追跡調査しています%$#@![버전 V0.7.3]
출시일:26.6.5
이번 업데이트에서는 게임 시스템 일부를 조정하고 여러 bug를 수정했습니다. 일부 난해한 bug와 몇 가지 작은 오류는 계속 추적 중이며, 순서대로 하나씩 수정할 예정입니다.
---------[게임 시스템 조정]-------------
주의: 이번 조정은 주로 게임의 일부 기본 설계를 대상으로 합니다. 영웅 모듈도 소폭 조정했지만, 최종 조정은 아닙니다.
1. 왕계급, 후계급, 차계급 영웅의 기본 직급 특성을 조정했습니다.
2. 일부 영웅의 업그레이드 임무를 소폭 조정했습니다.
3. 일부 영웅의 초기 수치를 소폭 조정했습니다.
4. 도시 Lv.3 업그레이드 보상을 조정했습니다. "요새"는 "방어" 기술로 이동하고, 기존 "요새" 선택지는 "서원"(문화 2 획득)으로 대체됩니다.
5. 유적에 무작위 보상 항목 추가: 문화 4
6. 모든 법전의 문화 소모량을 조정했으며, 조각상은 골드로 해금되도록 변경했습니다.
7. "봉건 채읍" 법전 효과를 조정하여, 이제 문화를 소모해 일반 유닛을 업그레이드할 수 있습니다.
8. 2차, 3차 영웅의 초기 레벨을 Lv.2로 조정했습니다. 부활 시간은 레벨에 따라 달라지며, 문화를 소모해 조기 부활할 수 있습니다.
---------[bug 수정 및 최적화]-------------
1.코치야 사나에의 제비뽑기 범위 피해로 유닛을 처치한 뒤 이미지가 남는 bug 수정
2.레이센이 환영 일제사격을 발동해 유닛을 처치할 때 이미지가 남을 수 있는 bug 수정
3.숨은 맥 타일이 표시되지 않을 수 있는 bug 수정
4.숨은 맥 타일이 물이나 산맥에 생성될 수 있는 bug 수정
5.호시구마 유기가 밀치기 중 유닛 중첩을 일으킬 수 있는 bug 수정
6.탐험가가 결계탑을 발견할 때 도시 경험치 애니메이션이 잘못 재생되는 bug 수정
7.능동 공격을 했지만 피해를 주지 못한 일부 경우 평화 불가사의 카운트가 초기화되지 않는 bug 수정
8.카메라 드래그 중 카메라가 시작 지점으로 강제 이동될 수 있는 bug 최적화
9.불가사의 도감 페이지의 업적 별 총수가 잘못 표시되는 bug 수정
10.일부 기술/스킬 설명 오류 수정
11.빠른 클릭/카운트다운 종료 등으로 도시 업그레이드 선탑지가 건너뛰어지는 bug 수정
12.학자가 대나무숲 늑대 대령으로 변신한 뒤 보름달 buff를 잘못 발동하는 bug 수정
13.멀티플레이 방 신고 버튼의 이동 위치가 잘못되는 bug 수정%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%
1. 불가사의 완성 후 "역사적 순간" 모듈 안내가 잘못 표시되던 bug를 수정했습니다.
2. 골드 수량이 잘못 표시될 수 있는 일부 bug를 수정했습니다.
3. 이자요이 사쿠야와 플랑드르가 연속 처치할 때 멀티플레이 동기화가 어긋날 수 있던 bug를 수정했습니다.
21002%$#@!??????????????????????????????%$#@!??????????????????????????????%$#@!Gains bonus Defense on any City Center. Ignores positive Defense bonuses when attacking.%$#@!???????????????????????????????????????????%$#@!?? ?? ??? ??? ?? ??? ??, ?? ? ??? ?? ?? ???? ????.%$#@!%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!False%$#@!True%$#@!!@#$%
21001%$#@!强袭堡垒%$#@!強襲堡壘%$#@!Assault Fortress%$#@!強襲要塞%$#@!강습 요새%$#@!%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!True%$#@!False%$#@!True%$#@!!@#$%
21002%$#@!位于任意城市中心或兵营时获得额外防御。攻击时无视目标的正面防御加成。%$#@!位於任意城市中心或兵營時獲得額外防禦。攻擊時無視目標的正面防禦加成。%$#@!Gains bonus Defense on any City Center or Barracks. Ignores positive Defense bonuses when attacking.%$#@!任意の都市中心または兵営にいる時、防御ボーナスを得る。攻撃時、目標の正の防御ボーナスを無視する。%$#@!아무 도시 중심이나 병영에 있으면 추가 방어를 얻고, 공격 시 대상의 긍정 방어 보너스를 무시한다.%$#@!%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!False%$#@!True%$#@!!@#$%
---------[난해한 bug 처리]-------------
1. 유닛이 사망했지만 이미지가 사라지지 않는 bug 문제는 현재 발생 후 자동으로 식별 및 보고하고, 다음 행동 전에 이미지 오류를 자동으로 정리하는 사후 보완 방식으로 대응하고 있습니다. 원인은 계속 추적 조사 중입니다.
2. 육지에 선박이 나타날 수 있는 bug 문제는 현재 발생 후 자동으로 식별 및 보고하는 방식으로 대응하고 있습니다. 원인은 계속 추적 조사 중입니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%21040%$#@!True%$#@!攻击时,不会受到对方反击。%$#@!攻擊時,不會受到對方反擊。%$#@!When attacking, this unit will not be counterattacked.%$#@!攻撃時、相手の反撃を受けない。%$#@!공격 시 상대의 반격을 받지 않습니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%21041%$#@!True%$#@!攻击时,不会受到对方反击。若位于敌方领土或与敌方领土相邻,攻击后移动力+1持续至本回合结束。%$#@!攻擊時,不會受到對方反擊。若位於敵方領土或與敵方領土相鄰,攻擊後移動力+1持續至本回合結束。%$#@!When attacking, this unit will not be counterattacked. If it is in or adjacent to enemy territory, Movement +1 after attacking until the end of this turn.%$#@!攻撃時、相手の反撃を受けない。敵領土内、または敵領土に隣接している場合、攻撃後に移動力+1。本ターン終了まで持続する。%$#@!공격 시 상대의 반격을 받지 않습니다. 적 영토 안에 있거나 적 영토와 인접해 있으면 공격 후 이동력 +1, 이번 턴 종료까지 지속됩니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%21042%$#@!True%$#@!处于己方或盟友领土或与之相邻时,**<移动力>**+1。%$#@!處於己方或盟友領土或與之相鄰時,**<移動力>**+1。%$#@!**<Movement>** +1 while in or adjacent to your or an ally's territory.%$#@!自分または盟友の領土内、またはそれらに隣接している時、**<移動力>**+1。%$#@!자신 또는 동맹의 영토 안에 있거나 그와 인접해 있을 때 **<이동력>** +1.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%21043%$#@!True%$#@![版本 V0.7.3b]
发布日期:26.6.6
本次对0.7.3版本中发现的部分问题和bug进行修补。其余bug及各种小型错误我们仍在持续修复中。
---------[调整]-------------
1.古明地恋在攻击时若位于敌方领土或与敌方领土相邻额外获得1点移动力持续至本回合结束
2.八意永琳Lv.1的升级任务要求从40块迷雾调整至50块迷雾
---------[bug修复与优化]-------------
1.修复了英雄复活时间错误的bug
2.修复了藤原妹红的火焰持续时间没有与等级相关的bug
3.修复了文化点复活英雄失效的bug
4.完善了部分技能描述
---------[疑难bug处理]-------------
1.对于金币显示与实际拥有数量不符的问题,目前采用的强制同步的方案,确保显示一致%$#@![版本 V0.7.3b]
發布日期:26.6.6
本次對 0.7.3 版本中發現的部分問題和 bug 進行修補。其餘 bug 及各種小型錯誤我們仍在持續修復中。
---------[調整]-------------
1.古明地戀在攻擊時若位於敵方領土或與敵方領土相鄰額外獲得1點移動力持續至本回合結束
2.八意永琳 Lv.1 的升級任務要求從40塊迷霧調整至50塊迷霧
---------[bug 修復與優化]-------------
1.修復了英雄復活時間錯誤的 bug
2.修復了藤原妹紅的火焰持續時間沒有與等級相關的 bug
3.修復了文化點復活英雄失效的 bug
4.完善了部分技能描述
---------[疑難 bug 處理]-------------
1.對於金幣顯示與實際擁有數量不符的問題,目前採用強制同步方案,確保顯示一致%$#@![Version V0.7.3b]
Release Date: 26.6.6
This update fixes some issues and bugs found in version 0.7.3. We are still working on the remaining bugs and various smaller issues.
---------[Adjustments]-------------
1. When Koishi Komeiji attacks while in or adjacent to enemy territory, she gains an extra 1 Movement until the end of this turn.
2. Eirin Yagokoro's Lv.1 upgrade task requirement has been adjusted from 40 fog tiles to 50 fog tiles.
---------[Bug Fixes and Optimizations]-------------
1. Fixed a bug with incorrect hero revival time.
2. Fixed a bug where Fujiwara no Mokou's flame duration was not level-based.
3. Fixed a bug where reviving heroes with Culture failed.
4. Improved some skill descriptions.
---------[Difficult Bug Handling]-------------
1. For the issue where displayed Gold does not match the actual amount owned, we are currently using forced synchronization to ensure the display stays consistent.%$#@![バージョン V0.7.3b]
リリース日:26.6.6
今回の更新では、0.7.3 バージョンで発見された一部の問題と bug を修正しました。残りの bug と各種小さな不具合については、引き続き修正を進めています。
---------[調整]-------------
1.古明地こいしが攻撃時に敵領土内、または敵領土に隣接している場合、追加で移動力1を得る。本ターン終了まで持続する
2.八意永琳 Lv.1 のアップグレード任務条件を、霧40マスから霧50マスに調整しました
---------[bug 修正と最適化]-------------
1.ヒーローの復活時間が誤っていた bug を修正しました
2.藤原妹紅の炎持続時間がレベルに応じていなかった bug を修正しました
3.文化値によるヒーロー復活が失敗する bug を修正しました
4.一部スキル説明を改善しました
---------[難解な bug への対応]-------------
1.表示されるゴールドと実際の所持数が一致しない問題については、現在、表示の一致を保証するために強制同期方式を採用しています%$#@![버전 V0.7.3b]
출시일:26.6.6
이번 업데이트에서는 0.7.3 버전에서 발견된 일부 문제와 bug를 수정했습니다. 나머지 bug와 여러 작은 오류는 계속 수정 중입니다.
---------[조정]-------------
1. 코메이지 코이시가 공격 시 적 영토 안에 있거나 적 영토와 인접해 있으면 이동력 1을 추가로 얻으며, 이번 턴 종료까지 지속됩니다.
2. 야고코로 에이린 Lv.1 업그레이드 임무 요구 조건을 안개 40칸에서 안개 50칸으로 조정했습니다.
---------[bug 수정 및 최적화]-------------
1. 영웅 부활 시간이 잘못되던 bug를 수정했습니다.
2. 후지와라노 모코우의 화염 지속 시간이 레벨과 연동되지 않던 bug를 수정했습니다.
3. 문화로 영웅 부활이 실패하던 bug를 수정했습니다.
4. 일부 스킬 설명을 보완했습니다.
---------[난해한 bug 처리]-------------
1. 표시되는 골드와 실제 보유량이 일치하지 않는 문제는 현재 강제 동기화 방식을 사용해 표시가 일치하도록 하고 있습니다.%$#@!False%$#@!False%$#@!False%$#@!%$#@!False%$#@!False%$#@!False%$#@!%$#@!!@#$%

File diff suppressed because one or more lines are too long

View File

@ -2,22 +2,21 @@ using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
// =================================== SkillDataAssets 自定义编辑器(带搜索功能) ===================================
[CustomEditor(typeof(SkillDataAssets))]
public class SkillDataAssetsEditor : Editor
{
private const float ListViewHeight = 600f;
private const float ItemPadding = 4f;
private const float ItemSpacing = 2f;
private const float DeleteButtonWidth = 25f;
private readonly List<int> _filteredIndices = new List<int>();
private string _searchFilter = "";
private List<int> _filteredIndices = new List<int>();
private SerializedProperty _skillInfoListProperty;
private Vector2 _scrollPosition;
private bool _isSearching = false;
private bool _isSearching;
private bool _needsFilterUpdate = true;
// 搜索过滤相关
private double _lastFilterUpdateTime;
private const double FILTER_UPDATE_DELAY = 0.1; // 100ms延迟
private void OnEnable()
{
_skillInfoListProperty = serializedObject.FindProperty("SkillInfoList");
@ -26,50 +25,36 @@ public class SkillDataAssetsEditor : Editor
private void OnDisable()
{
// 清理
_filteredIndices?.Clear();
_filteredIndices.Clear();
}
public override void OnInspectorGUI()
{
// 性能优化:只在真正需要时更新序列化对象
bool needsUpdate = Event.current.type == EventType.Layout ||
Event.current.type == EventType.Repaint ||
GUI.changed;
serializedObject.Update();
if (needsUpdate)
serializedObject.Update();
// 绘制默认的其他字段
DrawPropertiesExcluding(serializedObject, "SkillInfoList");
EditorGUILayout.Space(10);
EditorGUILayout.LabelField("技能列表", EditorStyles.boldLabel);
// 新增技能按钮(搜索模式下禁用)
if (_isSearching)
using (new EditorGUI.DisabledGroupScope(_isSearching))
{
GUI.enabled = false;
}
if (GUILayout.Button("新增 Skill", GUILayout.Height(30)))
{
_skillInfoListProperty.arraySize++;
var newElement = _skillInfoListProperty.GetArrayElementAtIndex(_skillInfoListProperty.arraySize - 1);
var skillTypeProp = newElement.FindPropertyRelative("SkillType");
if (skillTypeProp != null)
if (GUILayout.Button("新增 Skill", GUILayout.Height(30)))
{
skillTypeProp.enumValueIndex = 0;
_skillInfoListProperty.arraySize++;
SerializedProperty newElement = _skillInfoListProperty.GetArrayElementAtIndex(_skillInfoListProperty.arraySize - 1);
SerializedProperty skillTypeProp = newElement.FindPropertyRelative("SkillType");
if (skillTypeProp != null)
skillTypeProp.enumValueIndex = 0;
newElement.isExpanded = true;
serializedObject.ApplyModifiedProperties();
_scrollPosition.y = float.MaxValue;
}
newElement.isExpanded = true;
serializedObject.ApplyModifiedProperties();
// 滚动到底部(新项目在最后)
_scrollPosition.y = float.MaxValue;
}
GUI.enabled = true;
EditorGUILayout.Space(5);
// 搜索框
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("搜索:", GUILayout.Width(100));
string newFilter = EditorGUILayout.TextField(_searchFilter);
@ -80,148 +65,194 @@ public class SkillDataAssetsEditor : Editor
}
EditorGUILayout.EndHorizontal();
// 检测搜索内容变化(使用延迟更新避免频繁过滤)
if (newFilter != _searchFilter)
{
_searchFilter = newFilter;
_isSearching = !string.IsNullOrEmpty(_searchFilter);
// 延迟到下一帧更新过滤结果,减少输入时的卡顿
_needsFilterUpdate = true;
}
// 在Layout阶段更新过滤列表确保Layout和Repaint阶段控件数一致
if (_needsFilterUpdate && Event.current.type == EventType.Layout)
{
UpdateFilteredIndices();
_needsFilterUpdate = false;
}
// 显示筛选状态
if (_isSearching)
{
EditorGUILayout.LabelField($"筛选结果: {_filteredIndices.Count} 个技能", EditorStyles.miniLabel);
}
EditorGUILayout.Space(5);
// 绘制 SkillInfoList
if (_skillInfoListProperty != null)
{
_skillInfoListProperty.isExpanded = EditorGUILayout.Foldout(_skillInfoListProperty.isExpanded, $"Skill Info List ({(_isSearching ? _filteredIndices.Count : _skillInfoListProperty.arraySize)} items)", true);
int visibleCount = _isSearching ? _filteredIndices.Count : _skillInfoListProperty.arraySize;
_skillInfoListProperty.isExpanded = EditorGUILayout.Foldout(
_skillInfoListProperty.isExpanded,
$"Skill Info List ({visibleCount} items)",
true);
if (_skillInfoListProperty.isExpanded)
{
_scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition, GUILayout.MaxHeight(600));
_scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition, GUILayout.MaxHeight(ListViewHeight));
if (_isSearching)
{
// 搜索模式:手动绘制筛选后的项
if (_filteredIndices.Count == 0)
{
EditorGUILayout.HelpBox("没有找到匹配的技能", MessageType.Info);
}
else
{
foreach (int index in _filteredIndices)
{
DrawSkillInfoItem(index);
}
}
DrawVirtualizedFilteredList();
}
else
{
// 正常模式:倒序显示(序号大的在前面),每个项目带删除按钮
DrawSkillInfoListReverse();
DrawVirtualizedReverseList();
}
EditorGUILayout.EndScrollView();
}
}
// 性能优化只在GUI变更时应用修改避免无意义的序列化操作
if (GUI.changed)
{
serializedObject.ApplyModifiedProperties();
}
private void DrawVirtualizedFilteredList()
{
float visibleTop = _scrollPosition.y;
float visibleBottom = visibleTop + ListViewHeight;
float currentY = 0f;
for (int i = 0; i < _filteredIndices.Count; i++)
{
int index = _filteredIndices[i];
SerializedProperty element = _skillInfoListProperty.GetArrayElementAtIndex(index);
float height = GetSkillInfoItemHeight(element);
DrawOrSkipSkillInfoItem(index, element, false, currentY, height, visibleTop, visibleBottom);
currentY += height;
}
}
private void DrawSkillInfoItem(int index)
private void DrawVirtualizedReverseList()
{
SerializedProperty element = _skillInfoListProperty.GetArrayElementAtIndex(index);
string skillTypeName = GetCachedSkillTypeName(index, element);
string skillDisplayName = GetCachedSkillDisplayName(index, element);
float visibleTop = _scrollPosition.y;
float visibleBottom = visibleTop + ListViewHeight;
float currentY = 0f;
// 绘制背景高亮
Rect bgRect = EditorGUILayout.BeginVertical(GUI.skin.box);
EditorGUI.DrawRect(bgRect, new Color(0.2f, 0.8f, 0.2f, 0.05f));
// 绘制折叠标题(显示 SkillType 和 SkillName
string title = $"[{index}] {skillTypeName}";
if (!string.IsNullOrEmpty(skillDisplayName))
for (int index = _skillInfoListProperty.arraySize - 1; index >= 0; index--)
{
title += $" - {skillDisplayName}";
SerializedProperty element = _skillInfoListProperty.GetArrayElementAtIndex(index);
float height = GetSkillInfoItemHeight(element);
DrawOrSkipSkillInfoItem(index, element, true, currentY, height, visibleTop, visibleBottom);
currentY += height;
}
}
private void DrawOrSkipSkillInfoItem(
int index,
SerializedProperty element,
bool showDelete,
float currentY,
float height,
float visibleTop,
float visibleBottom)
{
bool isVisible = currentY + height >= visibleTop && currentY <= visibleBottom;
if (!isVisible)
{
GUILayout.Space(height);
return;
}
Rect rect = GUILayoutUtility.GetRect(0f, height, GUILayout.ExpandWidth(true));
DrawSkillInfoItem(rect, index, element, showDelete);
}
private float GetSkillInfoItemHeight(SerializedProperty element)
{
float height = ItemPadding + EditorGUIUtility.singleLineHeight + ItemPadding + ItemSpacing;
if (!element.isExpanded)
return height;
SerializedProperty childProp = element.Copy();
SerializedProperty end = childProp.GetEndProperty();
childProp.NextVisible(true);
while (!SerializedProperty.EqualContents(childProp, end))
{
height += EditorGUI.GetPropertyHeight(childProp, true) + EditorGUIUtility.standardVerticalSpacing;
if (!childProp.NextVisible(false))
break;
}
return height + ItemPadding;
}
private void DrawSkillInfoItem(Rect rect, int index, SerializedProperty element, bool showDelete)
{
GUI.Box(rect, GUIContent.none, GUI.skin.box);
Rect contentRect = new Rect(
rect.x + ItemPadding,
rect.y + ItemPadding,
rect.width - ItemPadding * 2f,
rect.height - ItemPadding * 2f);
Rect foldoutRect = new Rect(
contentRect.x,
contentRect.y,
showDelete ? contentRect.width - DeleteButtonWidth - ItemPadding : contentRect.width,
EditorGUIUtility.singleLineHeight);
string title = BuildSkillTitle(index, element);
bool wasExpanded = element.isExpanded;
element.isExpanded = EditorGUILayout.Foldout(wasExpanded, title, true);
bool newExpanded = EditorGUI.Foldout(foldoutRect, wasExpanded, title, true);
if (newExpanded != wasExpanded)
element.isExpanded = newExpanded;
// 用切换前的值决定是否绘制子属性确保Layout和Repaint阶段控件数一致
if (wasExpanded)
if (showDelete)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(element, GUIContent.none, true);
EditorGUI.indentLevel--;
}
Rect deleteRect = new Rect(
contentRect.xMax - DeleteButtonWidth,
contentRect.y,
DeleteButtonWidth,
EditorGUIUtility.singleLineHeight);
EditorGUILayout.Space(2);
EditorGUILayout.EndVertical();
}
private void DrawSkillInfoListReverse()
{
// 倒序遍历:序号大的显示在前面
int arraySize = _skillInfoListProperty.arraySize;
for (int i = arraySize - 1; i >= 0; i--)
{
SerializedProperty element = _skillInfoListProperty.GetArrayElementAtIndex(i);
string skillTypeName = GetCachedSkillTypeName(i, element);
string skillDisplayName = GetCachedSkillDisplayName(i, element);
EditorGUILayout.BeginVertical(GUI.skin.box);
// 标题行Foldout + 删除按钮
EditorGUILayout.BeginHorizontal();
// 绘制折叠标题(显示 SkillType 和 SkillName
string title = $"[{i}] {skillTypeName}";
if (!string.IsNullOrEmpty(skillDisplayName))
if (GUI.Button(deleteRect, "-"))
{
title += $" - {skillDisplayName}";
}
bool wasExpanded = element.isExpanded;
element.isExpanded = EditorGUILayout.Foldout(wasExpanded, title, true);
// 删除按钮
if (GUILayout.Button("-", GUILayout.Width(25), GUILayout.Height(20)))
{
_skillInfoListProperty.DeleteArrayElementAtIndex(i);
_skillInfoListProperty.DeleteArrayElementAtIndex(index);
serializedObject.ApplyModifiedProperties();
GUIUtility.ExitGUI();
return;
}
EditorGUILayout.EndHorizontal();
// 用切换前的值决定是否绘制子属性确保Layout和Repaint阶段控件数一致
if (wasExpanded)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(element, GUIContent.none, true);
EditorGUI.indentLevel--;
}
EditorGUILayout.Space(2);
EditorGUILayout.EndVertical();
}
// Use the previous expansion state so Layout/Repaint keep the same control tree.
if (wasExpanded)
DrawSkillInfoChildren(contentRect, element);
}
private void DrawSkillInfoChildren(Rect contentRect, SerializedProperty element)
{
EditorGUI.indentLevel++;
float y = contentRect.y + EditorGUIUtility.singleLineHeight + ItemPadding;
SerializedProperty childProp = element.Copy();
SerializedProperty end = childProp.GetEndProperty();
childProp.NextVisible(true);
while (!SerializedProperty.EqualContents(childProp, end))
{
float height = EditorGUI.GetPropertyHeight(childProp, true);
Rect fieldRect = new Rect(contentRect.x, y, contentRect.width, height);
EditorGUI.PropertyField(fieldRect, childProp, true);
y += height + EditorGUIUtility.standardVerticalSpacing;
if (!childProp.NextVisible(false))
break;
}
EditorGUI.indentLevel--;
}
private void UpdateFilteredIndices()
@ -231,89 +262,82 @@ public class SkillDataAssetsEditor : Editor
if (_skillInfoListProperty == null || string.IsNullOrEmpty(_searchFilter))
return;
string lowerFilter = _searchFilter.ToLower();
int arraySize = _skillInfoListProperty.arraySize;
for (int i = 0; i < arraySize; i++)
{
SerializedProperty element = _skillInfoListProperty.GetArrayElementAtIndex(i);
string skillTypeName = GetCachedSkillTypeName(i, element);
string skillDisplayName = GetCachedSkillDisplayName(i, element);
string skillTypeName = GetSkillTypeName(element);
string skillDisplayName = GetSkillDisplayName(element);
if (skillTypeName.ToLower().Contains(lowerFilter)
|| (!string.IsNullOrEmpty(skillDisplayName) && skillDisplayName.ToLower().Contains(lowerFilter)))
if (ContainsIgnoreCase(skillTypeName, _searchFilter) ||
ContainsIgnoreCase(skillDisplayName, _searchFilter))
{
_filteredIndices.Add(i);
}
}
}
// 简单的名称获取,不做跨帧缓存(避免数组变化时缓存失效)
private string GetCachedSkillTypeName(int index, SerializedProperty skillInfoProperty)
private static string BuildSkillTitle(int index, SerializedProperty skillInfoProperty)
{
var skillTypeProp = skillInfoProperty.FindPropertyRelative("SkillType");
return skillTypeProp != null ? skillTypeProp.enumDisplayNames[skillTypeProp.enumValueIndex] : "Unknown";
string skillTypeName = GetSkillTypeName(skillInfoProperty);
string skillDisplayName = GetSkillDisplayName(skillInfoProperty);
if (string.IsNullOrEmpty(skillDisplayName))
return $"[{index}] {skillTypeName}";
return $"[{index}] {skillTypeName} - {skillDisplayName}";
}
private string GetCachedSkillDisplayName(int index, SerializedProperty skillInfoProperty)
private static string GetSkillTypeName(SerializedProperty skillInfoProperty)
{
var skillNameProp = skillInfoProperty.FindPropertyRelative("SkillName");
SerializedProperty skillTypeProp = skillInfoProperty.FindPropertyRelative("SkillType");
if (skillTypeProp == null ||
skillTypeProp.enumValueIndex < 0 ||
skillTypeProp.enumValueIndex >= skillTypeProp.enumDisplayNames.Length)
{
return "Unknown";
}
return skillTypeProp.enumDisplayNames[skillTypeProp.enumValueIndex];
}
private static string GetSkillDisplayName(SerializedProperty skillInfoProperty)
{
SerializedProperty skillNameProp = skillInfoProperty.FindPropertyRelative("SkillName");
return skillNameProp != null ? skillNameProp.stringValue : "";
}
// 兼容旧代码的调用方式
private string GetSkillTypeName(SerializedProperty skillInfoProperty)
private static bool ContainsIgnoreCase(string value, string filter)
{
return GetCachedSkillTypeName(-1, skillInfoProperty);
}
private string GetSkillDisplayName(SerializedProperty skillInfoProperty)
{
return GetCachedSkillDisplayName(-1, skillInfoProperty);
return !string.IsNullOrEmpty(value) &&
value.IndexOf(filter, System.StringComparison.OrdinalIgnoreCase) >= 0;
}
}
// =================================== SkillInfo Property Drawer用于其他地方 ===================================
[CustomPropertyDrawer(typeof(SkillInfo))]
public class SkillInfoDrawer : PropertyDrawer
{
// 缓存字段高度避免重复计算
private float _cachedHeight = -1;
private int _expandedCheckIndex = -1;
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginChangeCheck();
// Step 1: 获取 SkillType
var skillProp = property.FindPropertyRelative("SkillType");
string skillName = skillProp?.enumDisplayNames[skillProp.enumValueIndex];
SerializedProperty skillProp = property.FindPropertyRelative("SkillType");
string skillName = skillProp != null &&
skillProp.enumValueIndex >= 0 &&
skillProp.enumValueIndex < skillProp.enumDisplayNames.Length
? skillProp.enumDisplayNames[skillProp.enumValueIndex]
: label.text;
// 创建新的 GUIContent不修改传入的 label
GUIContent newLabel = new GUIContent(skillName);
// Step 2: 显示 Foldout
property.isExpanded = EditorGUI.Foldout(
new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight),
property.isExpanded,
newLabel,
true
);
new GUIContent(skillName),
true);
// Step 3: 展开显示所有字段
if (property.isExpanded)
{
EditorGUI.indentLevel++;
float y = position.y + EditorGUIUtility.singleLineHeight + 2;
// 缓存展开状态变更检测
int currentIndex = property.GetHashCode();
if (_expandedCheckIndex != currentIndex)
{
_cachedHeight = -1;
_expandedCheckIndex = currentIndex;
}
float y = position.y + EditorGUIUtility.singleLineHeight + 2f;
SerializedProperty childProp = property.Copy();
SerializedProperty end = childProp.GetEndProperty();
@ -321,13 +345,9 @@ public class SkillInfoDrawer : PropertyDrawer
while (!SerializedProperty.EqualContents(childProp, end))
{
float h = EditorGUI.GetPropertyHeight(childProp, true);
EditorGUI.PropertyField(
new Rect(position.x, y, position.width, h),
childProp,
true
);
y += h + EditorGUIUtility.standardVerticalSpacing;
float height = EditorGUI.GetPropertyHeight(childProp, true);
EditorGUI.PropertyField(new Rect(position.x, y, position.width, height), childProp, true);
y += height + EditorGUIUtility.standardVerticalSpacing;
if (!childProp.NextVisible(false))
break;
@ -336,25 +356,16 @@ public class SkillInfoDrawer : PropertyDrawer
EditorGUI.indentLevel--;
}
// 统一检测变更,减少序列化同步频率
if (EditorGUI.EndChangeCheck())
{
GUI.changed = true;
}
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
// 快速路径:未展开时返回固定高度
if (!property.isExpanded)
return EditorGUIUtility.singleLineHeight + 2;
return EditorGUIUtility.singleLineHeight + 2f;
// 缓存高度计算结果
int propHash = property.GetHashCode();
if (_cachedHeight > 0 && _expandedCheckIndex == propHash)
return _cachedHeight;
float height = EditorGUIUtility.singleLineHeight + 2;
float height = EditorGUIUtility.singleLineHeight + 2f;
SerializedProperty childProp = property.Copy();
SerializedProperty end = childProp.GetEndProperty();
@ -367,7 +378,6 @@ public class SkillInfoDrawer : PropertyDrawer
break;
}
_cachedHeight = height;
return height;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u6267\u653F\u5B98"
Description: "\u53EF\u51FA\u6218\u7B2C2\u540D\u82F1\u96C4"
Cost: 15
Cost: 25
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -89,7 +90,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u4E09\u5934\u653F\u6CBB"
Description: "\u53EF\u51FA\u6218\u7B2C3\u540D\u82F1\u96C4"
Cost: 50
Cost: 40
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -160,6 +162,7 @@ MonoBehaviour:
Name: "\u6BCD\u6743\u4F20\u7EDF"
Description: "\u53EF\u5728**<![1]\u68EE\u6797>**\u4E2D\u5EFA\u9020**<![2]\u540E\u4E4B\u96D5\u50CF>**"
Cost: 15
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -234,6 +237,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -246,7 +250,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u5185\u9601\u5236"
Description: "\u53EF\u5728**<![1]\u6D45\u6D77>**\u4E2D\u5EFA\u9020**<![2]\u76F8\u4E4B\u96D5\u50CF>**"
Cost: 30
Cost: 20
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -321,6 +326,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -333,7 +339,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u56FD\u5BB6\u8981\u585E"
Description: "\u53EF\u5728**<![1]\u5C71\u8109>**\u4E2D\u5EFA\u9020**<![2]\u8F66\u4E4B\u96D5\u50CF>**"
Cost: 30
Cost: 20
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -408,6 +415,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -420,7 +428,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u541B\u6743\u795E\u6388"
Description: "\u53EF\u5728**<![1]\u6DF1\u6D77>**\u4E2D\u5EFA\u9020**<![2]\u738B\u4E4B\u96D5\u50CF>**"
Cost: 60
Cost: 25
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -495,6 +504,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -507,7 +517,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u6E38\u7267\u4F20\u7EDF"
Description: "\u53EF\u5728**<![1]\u5E73\u539F>**\u4E2D\u5EFA\u9020**<![2]\u9A6C\u4E4B\u96D5\u50CF>**"
Cost: 60
Cost: 25
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -582,6 +593,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -593,8 +605,9 @@ MonoBehaviour:
IsActive: 1
NotShow: 0
Name: "\u5C01\u5EFA\u91C7\u9091"
Description: "\u82F1\u96C4\u5347\u7EA7\u6240\u9700**<\u6587\u5316\u503C>**\u6D88\u8017\u51CF\u5C1180%"
Cost: 100
Description: "\u53EF\u6D88\u8017**<\u6587\u5316\u503C>**\u5347\u7EA7\u666E\u901A\u5355\u4F4D"
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: 7983e5706aca9634188e20ecea690403, type: 3}
IconViewSizeType: 5
VarientIcon: 0
@ -612,7 +625,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u82F1\u7075\u5D07\u62DC"
Description: "\u53EF\u6D88\u8017**<\u6587\u5316\u503C>**\u8BAD\u7EC3**<\u5DE8\u4EBA\u5355\u4F4D>**"
Cost: 100
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: db8e5bdf50e54ed47ae7ea7ef00b8997, type: 3}
IconViewSizeType: 0
VarientIcon: 1
@ -687,6 +701,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -704,6 +719,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -721,6 +737,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -738,6 +755,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -750,7 +768,8 @@ MonoBehaviour:
NotShow: 0
Name: "\u4E07\u56FD\u535A\u89C8\u4F1A"
Description: "**<\u56DE\u5408\u6587\u5316\u503C>**\u63D0\u4F9B\u7B49\u91CF**<\u56DE\u5408\u91D1\u5E01>**"
Cost: 100
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: 794e6f091dd8fad4997bc9d682636790, type: 3}
IconViewSizeType: 2
VarientIcon: 0
@ -769,6 +788,7 @@ MonoBehaviour:
Name: "Lv2\u82F1\u96C4"
Description:
Cost: 0
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 0
@ -787,6 +807,7 @@ MonoBehaviour:
Name: "Lv3\u82F1\u96C4"
Description:
Cost: 0
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 0

View File

@ -111,7 +111,7 @@ MonoBehaviour:
HeroAvatar: {fileID: 21300000, guid: 103b55670ec95354ba674f1b2c78d731, type: 3}
TaskList:
- taskContentType: 5
Param: 40
Param: 50
SkillParam: 0
SpType: 0
SkillList:
@ -141,31 +141,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 7827e23a317aaac4c8d5131a85e63094, type: 3}
HeroAvatar: {fileID: 21300000, guid: 6bb640e5ad6fd9a4aa4cc673e625ca86, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 103
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 82
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- GiantType: 2
@ -296,31 +296,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: c5feb7e3a8bc4384e955e9fa2218fc25, type: 3}
HeroAvatar: {fileID: 21300000, guid: 2ee782bb5dad2a742a9cad72289a1ef1, type: 3}
TaskList:
- taskContentType: 1
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- GiantType: 11
@ -475,13 +475,13 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 3756265d254e8e542b0c198d11bf75d4, type: 3}
HeroAvatar: {fileID: 21300000, guid: e5a0b8c9d9f229a48897e68344fd47b1, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 19
@ -599,31 +599,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 391a0d98539de7242a5a936135aeb482, type: 3}
HeroAvatar: {fileID: 21300000, guid: b2cfe071c01256347816f04fa6acbc5a, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
UnitFullTypes: []
TargetBuff:
- GiantType: 20

View File

@ -404,7 +404,7 @@ MonoBehaviour:
- SkillType: 29
SkillViewType: 2
SkillName: "\u5077\u88AD"
SkillDesc: "\u88AB\u52A8\u6280\u80FD\u3002\u653B\u51FB\u65F6\uFF0C\u4E0D\u4F1A\u53D7\u5230\u5BF9\u65B9\u53CD\u51FB\u3002"
SkillDesc: "\u653B\u51FB\u65F6\uFF0C\u4E0D\u4F1A\u53D7\u5230\u5BF9\u65B9\u53CD\u51FB\u3002"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 03e5f6f6f98ca184ba5f0f3116c82ff9, type: 3}
@ -417,7 +417,7 @@ MonoBehaviour:
IgnoreUnitGiantType: 0
IgnoreUnitLevel: 1
Icon: {fileID: 21300000, guid: 275fefca2b4e4544e9def034532ea0d8, type: 3}
SkillDesc: "\u653B\u51FB\u65F6\uFF0C\u4E0D\u4F1A\u53D7\u5230\u5BF9\u65B9\u53CD\u51FB"
SkillDesc: "\u653B\u51FB\u65F6\uFF0C\u4E0D\u4F1A\u53D7\u5230\u5BF9\u65B9\u53CD\u51FB\u3002\u82E5\u4F4D\u4E8E\u654C\u65B9\u9886\u571F\u6216\u4E0E\u654C\u65B9\u9886\u571F\u76F8\u90BB\uFF0C\u653B\u51FB\u540E\u79FB\u52A8\u529B+1\uFF0C\u6301\u7EED\u81F3\u672C\u56DE\u5408\u7ED3\u675F\u3002"
SkillName: "\u604B\u604B\u5728\u4F60\u8EAB\u540E\u54E6"
skillPriority: 0
ReserveOnCarry: 0
@ -1181,7 +1181,7 @@ MonoBehaviour:
- SkillType: 92
SkillViewType: 2
SkillName: "\u4E0D\u6B7B\u9E1F\u91CD\u751F"
SkillDesc: "\u59B9\u7EA2\u9635\u4EA1\u540E\u53D8\u4E3A\u706B\u7130\u72B6\u6001\uFF0C\u706B\u7130\u4E0D\u53EF\u653B\u51FB\u53CD\u51FB\uFF0C\u79FB\u52A8\u65F6\u9020\u6210\u6E85\u5C04\u4F24\u5BB3\u30023\u56DE\u5408\u540E\u82E5\u706B\u7130\u5B58\u6D3B\uFF0C\u59B9\u7EA2\u5728\u706B\u7130\u5904\u590D\u6D3B\u3002\u706B\u7130\u6D88\u5931\u65F6\u4E0D\u4F1A\u91CD\u7F6E\u590D\u6D3B\u51B7\u5374\u65F6\u95F4\u3002"
SkillDesc: "\u59B9\u7EA2\u9635\u4EA1\u540E\u53D8\u4E3A\u706B\u7130\u72B6\u6001\uFF0C\u706B\u7130\u4E0D\u53EF\u653B\u51FB\u53CD\u51FB\uFF0C\u79FB\u52A8\u65F6\u9020\u6210\u6E85\u5C04\u4F24\u5BB3\u3002\u82E5\u706B\u7130\u5B58\u6D3B\u56DE\u5408\u6570\u8FBE\u5230**<\u5F53\u524D\u7B49\u7EA7\u6570\u989D>**\uFF0C\u59B9\u7EA2\u5728\u706B\u7130\u5904\u590D\u6D3B\u3002\u706B\u7130\u6D88\u5931\u65F6\u4E0D\u4F1A\u91CD\u7F6E\u590D\u6D3B\u51B7\u5374\u65F6\u95F4\u3002"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 75b508c1ae4678a418bf2cecdbf4d6f1, type: 3}
@ -1549,7 +1549,7 @@ MonoBehaviour:
- SkillType: 114
SkillViewType: 2
SkillName: "\u5B8C\u7F8E\u5973\u4EC6"
SkillDesc: "\u53EF\u4EE5\u79FB\u52A8\u81F3\u4EFB\u610F**<\u5DF1\u65B9\u82F1\u96C4>**1\u683C\u8303\u56F4\u5185\uFF0C\u5E76\u4F7F**<1\u683C\u8303\u56F4\u5185>**\u7684**<\u5DF1\u65B9\u82F1\u96C4>**\u83B7\u5F97**<\u5973\u4EC6\u957F\u62A4\u4F51>**\u548C1\u70B9**<\u653B\u51FB\u884C\u52A8\u70B9>**\u3002\u540C\u56DE\u5408\u5185\u591A\u6B21\u4F7F\u7528\u4F1A\u7D2F\u8BA1\u5C42\u6570\u3002\u6BCF\u6B21**<\u94F6\u4E4B\u8DF3\u8DC3>**\u90FD\u4F1A\u53E0\u52A0\u4E0E\u5F53\u524D\u5C42\u6570\u76F8\u540C\u7684**<\u75B2\u52B3>**"
SkillDesc: "\u53EF\u4EE5\u79FB\u52A8\u81F3\u4EFB\u610F**<\u5DF1\u65B9\u82F1\u96C4>**1\u683C\u8303\u56F4\u5185\uFF0C\u5E76\u4F7F**<1\u683C\u8303\u56F4\u5185>**\u7684**<\u5DF1\u65B9\u82F1\u96C4>**\u83B7\u5F97**<\u5973\u4EC6\u957F\u62A4\u4F51>**\u548C1\u70B9**<\u653B\u51FB\u884C\u52A8\u70B9>**(\u6BCF\u4E2A\u5355\u4F4D\u6BCF\u56DE\u5408\u4E0A\u96501\u6B21)\u3002\u540C\u56DE\u5408\u5185\u591A\u6B21\u4F7F\u7528\u4F1A\u7D2F\u8BA1\u5C42\u6570\u3002\u6BCF\u6B21**<\u94F6\u4E4B\u8DF3\u8DC3>**\u90FD\u4F1A\u53E0\u52A0\u4E0E\u5F53\u524D\u5C42\u6570\u76F8\u540C\u7684**<\u75B2\u52B3>**"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: f5cb587a9626a694b885c473e6c3fe6d, type: 3}
@ -3528,12 +3528,12 @@ MonoBehaviour:
ReserveGiantUpgrade: 1
ReserveCommonTransform: 1
- SkillType: 267
SkillViewType: 0
SkillName: 21001
SkillDesc: 21002
SkillViewType: 1
SkillName: "\u5F3A\u88AD\u5821\u5792"
SkillDesc: "\u4F4D\u4E8E\u4EFB\u610F**<\u57CE\u5E02\u4E2D\u5FC3>**\u6216**<\u519B\u8425\u7C7B\u5EFA\u7B51>**\u65F6\u83B7\u5F97\u989D\u5916\u9632\u5FA1\u3002\u653B\u51FB\u65F6\u65E0\u89C6\u76EE\u6807\u7684\u9632\u5FA1\u52A0\u6210\u3002\u82F1\u96C4\u5347\u7EA7\u65F6\u989D\u5916\u56DE\u590D5HP\u3002"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: cf55b3fe561c3244faa3ad199411bcd3, type: 3}
SkillIcon: {fileID: 21300000, guid: 7b4c66aefb93a8e428a8ecc40eb55376, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
@ -3541,6 +3541,34 @@ MonoBehaviour:
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 268
SkillViewType: 1
SkillName: "\u5FA1\u5883\u5DE1\u884C"
SkillDesc: "\u5904\u4E8E\u5DF1\u65B9\u6216\u76DF\u53CB\u9886\u571F\u6216\u4E0E\u4E4B\u76F8\u90BB\u65F6\uFF0C**<\u79FB\u52A8\u529B>**+1\u3002"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 41fb89994da370143ab0b5f2fcf072cd, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 1
- SkillType: 269
SkillViewType: 1
SkillName: "\u738B\u5BA4\u5185\u5E11"
SkillDesc: "\u9996\u90FD\u53CA\u6BCF\u4E2A\u5360\u9886\u7684**<\u4ED6\u56FD\u539F\u59CB\u9996\u90FD>**\u63D0\u4F9B\u989D\u5916\u7684**<\u56DE\u5408\u91D1\u5E01>**\u3002\u6570\u989D\u4E0E\u82F1\u96C4\u7B49\u7EA7\u76F8\u540C\u3002"
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: b89a6f679ea1f3d47a69b6995a13a426, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 1
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 1
ReserveCommonTransform: 0
SkillViewTypeColorList:
- SkillViewType: 0
Color: {r: 0.16078432, g: 0.16078432, b: 0.3647059, a: 1}

View File

@ -75,7 +75,7 @@ MonoBehaviour:
icon: {fileID: 0}
CostLevel: 2
FatherTechList: 06000000
TechAtomList: 1800000019000000
TechAtomList: 180000001900000065000000
TechTreeCircleViewType: 7
- TechType: 8
TechName: "\u8015\u79CD"
@ -539,6 +539,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 1
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -570,6 +571,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 2
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -601,6 +603,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 4
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -632,6 +635,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 6
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -663,6 +667,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1470,6 +1475,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1501,6 +1507,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1571,6 +1578,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1602,6 +1610,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1686,6 +1695,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1821,6 +1831,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1904,6 +1915,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1935,6 +1947,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2083,6 +2096,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2166,6 +2180,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2197,6 +2212,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2228,6 +2244,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2273,6 +2290,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2304,6 +2322,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2335,6 +2354,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 3
SkillType: 0
TechType: 0
@ -2366,6 +2386,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2449,6 +2470,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2480,6 +2502,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 7
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2511,6 +2534,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2542,6 +2566,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2573,6 +2598,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2643,6 +2669,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2726,6 +2753,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 4
SkillType: 0
TechType: 0
@ -2757,6 +2785,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2788,6 +2817,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2858,6 +2888,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2941,6 +2972,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2972,6 +3004,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 2
SkillType: 0
TechType: 0
@ -3003,6 +3036,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3204,6 +3238,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3235,6 +3270,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3318,6 +3354,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3349,6 +3386,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 1
SkillType: 0
TechType: 0
@ -3484,6 +3522,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3515,6 +3554,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3560,6 +3600,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3591,6 +3632,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3674,6 +3716,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3799,6 +3842,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3882,6 +3926,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 5
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3913,6 +3958,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3981,6 +4027,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 6
SkillType: 0
TechType: 0
@ -4012,6 +4059,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4074,6 +4122,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4105,6 +4154,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4150,6 +4200,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4195,6 +4246,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 7
SkillType: 0
TechType: 0
@ -4254,6 +4306,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 8
SkillType: 0
TechType: 0
@ -4285,6 +4338,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4316,6 +4370,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4347,6 +4402,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4378,6 +4434,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4437,6 +4494,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4481,6 +4539,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4512,6 +4571,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4627,6 +4687,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4710,6 +4771,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4741,6 +4803,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4772,6 +4835,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4803,6 +4867,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4886,6 +4951,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4964,3 +5030,35 @@ MonoBehaviour:
IsVarient: 0
IconList: []
iconViewSizeType: 1
- TechAtom: 101
TechAtomName: "\u8981\u585E"
Desc: "\u5728\u57CE\u5E02\u4E2D\u5FC3\u6D88\u80178\u91D1\u5E01\u5EFA\u9020**<\u57CE\u5899>**\u3002"
IsAddSkill: 0
AddSkillCondition: []
AddSkillType: 0
EnableAction: 1
TechActions:
- ActionType: 21
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 1
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
UseActionSprite: 1
IconContainer:
Icon: {fileID: 21300000, guid: a6a9fcdb495237a499a62d498c760746, type: 3}
IsVarient: 0
IconList: []
iconViewSizeType: 2

View File

@ -92,6 +92,7 @@ MonoBehaviour:
NotifyUITechHint: "\u79D1\u6280\u5DF2\u7814\u53D1"
NotifyUIExamineTechHint: "\u83B7\u5F97\u968F\u673A\u79D1\u6280!"
NotifyUIExamineCityExpHint: "\u9996\u90FD\u83B7\u5F973\u70B9\u57CE\u5E02\u53D1\u5C55\u5EA6!"
NotifyUIExamineCultureHint: "\u83B7\u5F974\u70B9\u6587\u5316\u70B9"
NotifyUITurnHint: "\u7B2C{param}\u56DE\u5408"
NotifyUIInfiltrateStealCoin: "\u6210\u529F\u7A83\u53D6{param}\u91D1\u5E01!"
PresentationUIDiplomacyYouText: "\u60A8"

View File

@ -3735,7 +3735,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d00000002000000
Skills: 080000002b0000000d000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3761,7 +3761,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d0000008100000002000000
Skills: 080000002b0000000d00000081000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3787,7 +3787,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d000000810000008400000002000000
Skills: 080000002b0000000d0000008100000084000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3830,7 +3830,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d0000008b000000920000008400000002000000
Skills: 080000002b0000000d0000008b0000009200000084000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3890,7 +3890,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000730000000200000074000000d0000000
Skills: 0d000000730000000200000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3916,7 +3916,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d0000007a000000020000007500000074000000d0000000
Skills: 0d0000007a000000020000007500000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3942,7 +3942,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000020000007a0000007600000074000000d0000000
Skills: 0d000000020000007a0000007600000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3968,7 +3968,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d0000007a00000002000000760000004700000074000000d0000000
Skills: 0d0000007a00000002000000760000004700000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5112,7 +5112,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5138,7 +5138,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000003000000630000000d000000
Skills: 0200000003000000630000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5164,7 +5164,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 020000000300000063000000640000000d000000
Skills: 020000000300000063000000640000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5207,7 +5207,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000300000065000000640000000d000000
Skills: 020000000300000065000000640000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5250,7 +5250,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000d0000000c00000003000000
Skills: 020000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5276,7 +5276,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005a0000000d0000000c00000003000000
Skills: 02000000510000005a0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5302,7 +5302,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005b0000005a0000000d0000000c00000003000000
Skills: 02000000510000005b0000005a0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5328,7 +5328,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 3
Cost: 0
Skills: 0200000051000000030100005a0000005b0000000d0000000c00000003000000
Skills: 0200000051000000030100005a0000005b0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5574,7 +5574,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 20
Attack: 2.5
Attack: 2
Defense: 3
MoveRange: 1
AttackRange: 1
@ -5986,7 +5986,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000
Skills: 0200000094000000960000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6012,7 +6012,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b80000009a000000
Skills: 020000009400000096000000b80000009a0000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6055,7 +6055,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b9000000b7000000
Skills: 020000009400000096000000b9000000b70000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6098,7 +6098,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b9000000b7000000c0000000
Skills: 020000009400000096000000b9000000b7000000c00000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6141,7 +6141,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000
Skills: 020000000c0000009b0000009c0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6167,7 +6167,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000
Skills: 020000000c0000009b0000009c000000ba0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6193,7 +6193,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000bb000000
Skills: 020000000c0000009b0000009c000000ba000000bb0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6219,7 +6219,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000bb000000bc000000
Skills: 020000000c0000009b0000009c000000ba000000bb000000bc0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6482,7 +6482,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 20
Attack: 3
Attack: 2.5
Defense: 3
MoveRange: 1
AttackRange: 1
@ -6508,7 +6508,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 30
Attack: 3.5
Attack: 3
Defense: 3
MoveRange: 1
AttackRange: 1
@ -6591,7 +6591,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e000000002000000
Skills: e0000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6617,7 +6617,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d300000002000000
Skills: e0000000d3000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6643,7 +6643,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d3000000d400000002000000
Skills: e0000000d3000000d4000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6669,7 +6669,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d3000000d4000000f200000002000000
Skills: e0000000d3000000d4000000f2000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6692,10 +6692,10 @@ MonoBehaviour:
MaxHealth: 5
Attack: 2
Defense: 1
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc00000003000000e100000002000000
Skills: db0000000c000000dc00000003000000e1000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6718,10 +6718,10 @@ MonoBehaviour:
MaxHealth: 10
Attack: 2
Defense: 1
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e100000002000000
Skills: db0000000c000000dc000000030000001d000000e1000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6744,10 +6744,10 @@ MonoBehaviour:
MaxHealth: 10
Attack: 2
Defense: 2
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000
Skills: db0000000c000000dc000000030000001d000000e1000000e2000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6773,7 +6773,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000dd000000
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000dd0000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7087,7 +7087,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 15
Attack: 3
Attack: 2
Defense: 3
MoveRange: 1
AttackRange: 1
@ -7113,7 +7113,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 25
Attack: 3
Attack: 2.5
Defense: 3
MoveRange: 1
AttackRange: 1
@ -7954,7 +7954,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7980,7 +7980,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8006,7 +8006,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8032,7 +8032,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8058,7 +8058,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8084,7 +8084,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8110,7 +8110,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8136,7 +8136,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8162,7 +8162,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8188,7 +8188,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8214,7 +8214,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8240,7 +8240,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8266,7 +8266,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8292,7 +8292,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8318,7 +8318,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8344,7 +8344,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []

View File

@ -12,8 +12,18 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
m_Name: VersionConfig
m_EditorClassIdentifier:
CurVersionId: 70202
CurVersionId: 70301
Versions:
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 3
Description: "[\u7248\u672C V0.7.3b]\n\u53D1\u5E03\u65E5\u671F:26.6.6\n\u672C\u6B21\u5BF90.7.3\u7248\u672C\u4E2D\u53D1\u73B0\u7684\u90E8\u5206\u95EE\u9898\u548Cbug\u8FDB\u884C\u4FEE\u8865\u3002\u5176\u4F59bug\u53CA\u5404\u79CD\u5C0F\u578B\u9519\u8BEF\u6211\u4EEC\u4ECD\u5728\u6301\u7EED\u4FEE\u590D\u4E2D\u3002\n\n---------[\u8C03\u6574]-------------\n1.\u53E4\u660E\u5730\u604B\u5728\u653B\u51FB\u65F6\u82E5\u4F4D\u4E8E\u654C\u65B9\u9886\u571F\u6216\u4E0E\u654C\u65B9\u9886\u571F\u76F8\u90BB\uFF0C\u989D\u5916\u83B7\u5F971\u70B9\u79FB\u52A8\u529B\uFF0C\u6301\u7EED\u81F3\u672C\u56DE\u5408\u7ED3\u675F\n2.\u516B\u610F\u6C38\u7433Lv.1\u7684\u5347\u7EA7\u4EFB\u52A1\u8981\u6C42\u4ECE40\u5757\u8FF7\u96FE\u8C03\u6574\u81F350\u5757\u8FF7\u96FE\n\n---------[bug\u4FEE\u590D\u4E0E\u4F18\u5316]-------------\n1.\u4FEE\u590D\u4E86\u82F1\u96C4\u590D\u6D3B\u65F6\u95F4\u9519\u8BEF\u7684bug\n2.\u4FEE\u590D\u4E86\u85E4\u539F\u59B9\u7EA2\u7684\u706B\u7130\u6301\u7EED\u65F6\u95F4\u6CA1\u6709\u4E0E\u7B49\u7EA7\u76F8\u5173\u7684bug\n3.\u4FEE\u590D\u4E86\u6587\u5316\u70B9\u590D\u6D3B\u82F1\u96C4\u5931\u6548\u7684bug\n4.\u5B8C\u5584\u4E86\u90E8\u5206\u6280\u80FD\u63CF\u8FF0\n\n---------[\u7591\u96BEbug\u5904\u7406]-------------\n1.\u5BF9\u4E8E\u91D1\u5E01\u663E\u793A\u4E0E\u5B9E\u9645\u62E5\u6709\u6570\u91CF\u4E0D\u7B26\u7684\u95EE\u9898\uFF0C\u76EE\u524D\u91C7\u7528\u7684\u5F3A\u5236\u540C\u6B65\u7684\u65B9\u6848\uFF0C\u786E\u4FDD\u663E\u793A\u4E00\u81F4\n"
FourthVersion: 1
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 3
Description: "[\u7248\u672C V0.7.3]\n\u53D1\u5E03\u65E5\u671F:26.6.5\n\u672C\u6B21\u5BF9\u6E38\u620F\u673A\u5236\u8FDB\u884C\u4E86\u90E8\u5206\u8C03\u6574\uFF0C\u5E76\u4FEE\u590D\u4E86\u82E5\u5E72bug\u3002\u6709\u90E8\u5206\u7591\u96BEbug\u548C\u82E5\u5E72\u5C0F\u578B\u9519\u8BEF\uFF0C\u6211\u4EEC\u4ECD\u5728\u8FFD\u67E5\uFF0C\u4EE5\u53CA\u6309\u987A\u5E8F\u9010\u4E2A\u4FEE\u590D\u4E2D\u3002\n\n---------[\u6E38\u620F\u673A\u5236\u8C03\u6574]-------------\n\u6CE8\u610F\uFF1A\u672C\u6B21\u8C03\u6574\u4E3B\u8981\u9488\u5BF9\u6E38\u620F\u7684\u4E00\u4E9B\u57FA\u7840\u8BBE\u8BA1\uFF0C\u5BF9\u4E8E\u82F1\u96C4\u6A21\u5757\uFF0C\u8FDB\u884C\u4E86\u5C11\u91CF\u8C03\u6574\uFF0C\u4F46\u5E76\u975E\u6700\u7EC8\u8C03\u6574\u3002\n1.\u5BF9\u738B\u9636\u3001\u540E\u9636\u3001\u8F66\u9636\u82F1\u96C4\u7684\u57FA\u7840\u804C\u9636\u7279\u8272\u505A\u4E86\u8C03\u6574\u3002\n2.\u5BF9\u90E8\u5206\u82F1\u96C4\u7684\u5347\u7EA7\u4EFB\u52A1\u505A\u4E86\u5C11\u91CF\u8C03\u6574\u3002\n3.\u5BF9\u90E8\u5206\u82F1\u96C4\u7684\u521D\u59CB\u6570\u503C\u8FDB\u884C\u5C11\u91CF\u8C03\u6574\u3002\n4.\u8C03\u6574\u57CE\u5E02Lv.3\u5347\u7EA7\u65F6\u5956\u52B1\uFF0C\u5C06\u201C\u8981\u585E\"\u79FB\u5165\u201C\u9632\u5FA1\u201D\u79D1\u6280\uFF0C\u7531\u201C\u4E66\u9662\u201D(\u83B7\u5F972\u6587\u5316\u70B9)\u66FF\u6362\u539F\u201C\u8981\u585E\u201D\u9009\u9879\n5.\u9057\u8FF9\u65B0\u589E\u968F\u673A\u5956\u52B1\u6761\u76EE\uFF1A4\u6587\u5316\u70B9\n6.\u8C03\u6574\u4E86\u6240\u6709\u6CD5\u5178\u7684\u6587\u5316\u70B9\u6D88\u8017\uFF0C\u96D5\u50CF\u5219\u6539\u4E3A\u901A\u8FC7\u91D1\u5E01\u89E3\u9501\u3002\n7.\u8C03\u6574\u4E86\u201C\u5C01\u5EFA\u91C7\u9091\u201D\u6CD5\u5178\u6548\u679C\uFF0C\u73B0\u6539\u4E3A\u80FD\u591F\u6D88\u8017\u6587\u5316\u503C\u5347\u7EA7\u666E\u901A\u5355\u4F4D\n8.\u6B21\u53D1\u3001\u4E09\u53D1\u82F1\u96C4\u7684\u521D\u59CB\u7B49\u7EA7\u8C03\u6574\u4E3ALv.2\uFF0C\u590D\u6D3B\u65F6\u95F4\u8C03\u6574\u4E3A\u4E0E\u7B49\u7EA7\u76F8\u5173\uFF0C\u53EF\u6D88\u8017\u6587\u5316\u70B9\u63D0\u524D\u590D\u6D3B\n\n---------[bug\u4FEE\u590D\u4E0E\u4F18\u5316]-------------\n1.\u4FEE\u590D\u4E86\u5EFA\u6210\u5947\u89C2\u540E\"\u5386\u53F2\u65F6\u523B\"\u6A21\u5757\u63D0\u793A\u51FA\u9519\u7684bug\n2.\u4FEE\u590D\u4E86\u90E8\u5206\u53EF\u80FD\u5BFC\u81F4\u91D1\u5E01\u6570\u989D\u663E\u793A\u9519\u8BEF\u7684bug\n3.\u4FEE\u590D\u4E86\u5341\u516D\u591C\u54B2\u591C\u4E0E\u8299\u5170\u6735\u9732\u8FDE\u7EED\u51FB\u6740\u65F6\u53EF\u80FD\u5BFC\u81F4\u8054\u673A\u4E0D\u540C\u6B65\u7684bug\n\n---------[\u7591\u96BEbug\u5904\u7406]-------------\n1.\u5BF9\u4E8E\u5355\u4F4D\u6B7B\u4EA1\u4F46\u662F\u8D34\u56FE\u4E0D\u6D88\u5931\u7684bug\u95EE\u9898\uFF0C\u76EE\u524D\u91C7\u53D6\u4E86\u5728\u53D1\u751F\u95EE\u9898\u540E\uFF0C\u81EA\u52A8\u8BC6\u522B\u4E0A\u62A5\uFF0C\u5E76\u5728\u4E0B\u4E00\u4E2A\u884C\u52A8\u524D\u81EA\u52A8\u6E05\u7406\u56FE\u50CF\u9519\u8BEF\u7684\u540E\u7F6E\u8865\u6551\u65B9\u5F0F\u6765\u5E94\u5BF9\u3002\u6211\u4EEC\u4ECD\u5728\u7EE7\u7EED\u8DDF\u8E2A\u6392\u67E5\u539F\u56E0\n2.\u5BF9\u4E8E\u9646\u5730\u4E0A\u53EF\u80FD\u51FA\u73B0\u8239\u53EA\u7684bug\u95EE\u9898\uFF0C\u76EE\u524D\u91C7\u53D6\u4E86\u5728\u53D1\u751F\u95EE\u9898\u540E\u81EA\u52A8\u8BC6\u522B\u4E0A\u62A5\u7684\u65B9\u5F0F\uFF0C\u6211\u4EEC\u4ECD\u5728\u7EE7\u7EED\u8DDF\u8E2A\u6392\u67E5\u539F\u56E0"
FourthVersion: 0
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 2

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,8 @@ MonoBehaviour:
NotShow: 0
Name: 18122
Description: 18123
Cost: 15
Cost: 25
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -89,7 +90,8 @@ MonoBehaviour:
NotShow: 0
Name: 18124
Description: 18125
Cost: 50
Cost: 40
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -160,6 +162,7 @@ MonoBehaviour:
Name: 18126
Description: 19884
Cost: 15
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -234,6 +237,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -246,7 +250,8 @@ MonoBehaviour:
NotShow: 0
Name: 18129
Description: 18131
Cost: 30
Cost: 20
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -321,6 +326,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -333,7 +339,8 @@ MonoBehaviour:
NotShow: 0
Name: 18132
Description: 18134
Cost: 30
Cost: 20
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -408,6 +415,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -420,7 +428,8 @@ MonoBehaviour:
NotShow: 0
Name: 18135
Description: 19885
Cost: 60
Cost: 25
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -495,6 +504,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -507,7 +517,8 @@ MonoBehaviour:
NotShow: 0
Name: 18137
Description: 18139
Cost: 60
Cost: 25
BuyCostType: 1
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 1
@ -582,6 +593,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -593,8 +605,9 @@ MonoBehaviour:
IsActive: 1
NotShow: 0
Name: 18140
Description: 18142
Cost: 100
Description: 21034
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: 7983e5706aca9634188e20ecea690403, type: 3}
IconViewSizeType: 5
VarientIcon: 0
@ -612,7 +625,8 @@ MonoBehaviour:
NotShow: 0
Name: 18143
Description: 18145
Cost: 100
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: db8e5bdf50e54ed47ae7ea7ef00b8997, type: 3}
IconViewSizeType: 0
VarientIcon: 1
@ -687,6 +701,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -704,6 +719,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -721,6 +737,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -738,6 +755,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -750,7 +768,8 @@ MonoBehaviour:
NotShow: 0
Name: 18146
Description: 18149
Cost: 100
Cost: 60
BuyCostType: 0
Icon: {fileID: 21300000, guid: 794e6f091dd8fad4997bc9d682636790, type: 3}
IconViewSizeType: 2
VarientIcon: 0
@ -769,6 +788,7 @@ MonoBehaviour:
Name: 19339
Description:
Cost: 0
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 0
@ -787,6 +807,7 @@ MonoBehaviour:
Name: 19340
Description:
Cost: 0
BuyCostType: 0
Icon: {fileID: 0}
IconViewSizeType: 0
VarientIcon: 0

View File

@ -111,7 +111,7 @@ MonoBehaviour:
HeroAvatar: {fileID: 21300000, guid: 103b55670ec95354ba674f1b2c78d731, type: 3}
TaskList:
- taskContentType: 5
Param: 40
Param: 50
SkillParam: 0
SpType: 0
SkillList:
@ -141,31 +141,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 7827e23a317aaac4c8d5131a85e63094, type: 3}
HeroAvatar: {fileID: 21300000, guid: 6bb640e5ad6fd9a4aa4cc673e625ca86, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 103
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 82
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- GiantType: 2
@ -296,31 +296,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: c5feb7e3a8bc4384e955e9fa2218fc25, type: 3}
HeroAvatar: {fileID: 21300000, guid: 2ee782bb5dad2a742a9cad72289a1ef1, type: 3}
TaskList:
- taskContentType: 1
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- GiantType: 11
@ -475,13 +475,13 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 3756265d254e8e542b0c198d11bf75d4, type: 3}
HeroAvatar: {fileID: 21300000, guid: e5a0b8c9d9f229a48897e68344fd47b1, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 19
@ -599,31 +599,31 @@ MonoBehaviour:
HeroIllustration: {fileID: 21300000, guid: 391a0d98539de7242a5a936135aeb482, type: 3}
HeroAvatar: {fileID: 21300000, guid: b2cfe071c01256347816f04fa6acbc5a, type: 3}
TaskList:
- taskContentType: 1
Param: 20
- taskContentType: 23
Param: 25
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 50
- taskContentType: 23
Param: 60
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- taskContentType: 1
Param: 100
- taskContentType: 23
Param: 120
SkillParam: 0
SpType: 0
SkillList:
SkillName:
Desc: 1997
Desc: 21022
UnitFullTypes: []
TargetBuff:
- GiantType: 20

File diff suppressed because it is too large Load Diff

View File

@ -404,7 +404,7 @@ MonoBehaviour:
- SkillType: 29
SkillViewType: 2
SkillName: 2147
SkillDesc: 2148
SkillDesc: 21040
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 03e5f6f6f98ca184ba5f0f3116c82ff9, type: 3}
@ -417,7 +417,7 @@ MonoBehaviour:
IgnoreUnitGiantType: 0
IgnoreUnitLevel: 1
Icon: {fileID: 21300000, guid: 275fefca2b4e4544e9def034532ea0d8, type: 3}
SkillDesc: 17834
SkillDesc: 21041
SkillName: 17835
skillPriority: 0
ReserveOnCarry: 0
@ -1181,7 +1181,7 @@ MonoBehaviour:
- SkillType: 92
SkillViewType: 2
SkillName: 2023
SkillDesc: 19347
SkillDesc: 21038
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 75b508c1ae4678a418bf2cecdbf4d6f1, type: 3}
@ -1549,7 +1549,7 @@ MonoBehaviour:
- SkillType: 114
SkillViewType: 2
SkillName: 2295
SkillDesc: 19734
SkillDesc: 21035
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: f5cb587a9626a694b885c473e6c3fe6d, type: 3}
@ -3524,12 +3524,12 @@ MonoBehaviour:
ReserveGiantUpgrade: 1
ReserveCommonTransform: 1
- SkillType: 267
SkillViewType: 0
SkillViewType: 1
SkillName: 21001
SkillDesc: 21002
SkillDesc: 21024
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: cf55b3fe561c3244faa3ad199411bcd3, type: 3}
SkillIcon: {fileID: 21300000, guid: 7b4c66aefb93a8e428a8ecc40eb55376, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
@ -3537,6 +3537,34 @@ MonoBehaviour:
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 268
SkillViewType: 1
SkillName: 21025
SkillDesc: 21042
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: 41fb89994da370143ab0b5f2fcf072cd, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 1
- SkillType: 269
SkillViewType: 1
SkillName: 21027
SkillDesc: 21029
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 21300000, guid: b89a6f679ea1f3d47a69b6995a13a426, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 1
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 1
ReserveCommonTransform: 0
SkillViewTypeColorList:
- SkillViewType: 0
Color: {r: 0.16078432, g: 0.16078432, b: 0.3647059, a: 1}

View File

@ -75,7 +75,7 @@ MonoBehaviour:
icon: {fileID: 0}
CostLevel: 2
FatherTechList: 06000000
TechAtomList: 1800000019000000
TechAtomList: 180000001900000065000000
TechTreeCircleViewType: 7
- TechType: 8
TechName: 491
@ -539,6 +539,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 1
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -570,6 +571,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 2
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -601,6 +603,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 4
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -632,6 +635,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 6
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -663,6 +667,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1470,6 +1475,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1501,6 +1507,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1571,6 +1578,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1602,6 +1610,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1686,6 +1695,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1821,6 +1831,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1904,6 +1915,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1935,6 +1947,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2083,6 +2096,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2166,6 +2180,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2197,6 +2212,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2228,6 +2244,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2273,6 +2290,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2304,6 +2322,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2335,6 +2354,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 3
SkillType: 0
TechType: 0
@ -2366,6 +2386,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2449,6 +2470,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2480,6 +2502,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 7
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2511,6 +2534,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2542,6 +2566,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2573,6 +2598,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2643,6 +2669,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2726,6 +2753,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 4
SkillType: 0
TechType: 0
@ -2757,6 +2785,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2788,6 +2817,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2858,6 +2888,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2941,6 +2972,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2972,6 +3004,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 2
SkillType: 0
TechType: 0
@ -3003,6 +3036,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3204,6 +3238,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3235,6 +3270,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3318,6 +3354,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3349,6 +3386,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 1
SkillType: 0
TechType: 0
@ -3484,6 +3522,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3515,6 +3554,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3560,6 +3600,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3591,6 +3632,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3674,6 +3716,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3799,6 +3842,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3882,6 +3926,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 5
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3913,6 +3958,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3981,6 +4027,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 6
SkillType: 0
TechType: 0
@ -4012,6 +4059,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4074,6 +4122,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4105,6 +4154,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4150,6 +4200,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4195,6 +4246,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 7
SkillType: 0
TechType: 0
@ -4254,6 +4306,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 8
SkillType: 0
TechType: 0
@ -4285,6 +4338,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4316,6 +4370,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4347,6 +4402,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4378,6 +4434,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4437,6 +4494,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4481,6 +4539,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4512,6 +4571,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4627,6 +4687,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4710,6 +4771,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4741,6 +4803,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4772,6 +4835,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4803,6 +4867,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4886,6 +4951,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4964,3 +5030,35 @@ MonoBehaviour:
IsVarient: 0
IconList: []
iconViewSizeType: 1
- TechAtom: 101
TechAtomName: 16928
Desc: 21033
IsAddSkill: 0
AddSkillCondition: []
AddSkillType: 0
EnableAction: 1
TechActions:
- ActionType: 21
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 1
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
UseActionSprite: 1
IconContainer:
Icon: {fileID: 21300000, guid: a6a9fcdb495237a499a62d498c760746, type: 3}
IsVarient: 0
IconList: []
iconViewSizeType: 2

View File

@ -92,6 +92,7 @@ MonoBehaviour:
NotifyUITechHint: 17041
NotifyUIExamineTechHint: 19435
NotifyUIExamineCityExpHint: 19439
NotifyUIExamineCultureHint: 21030
NotifyUITurnHint: 1043
NotifyUIInfiltrateStealCoin: 19584
PresentationUIDiplomacyYouText: 17445

View File

@ -3735,7 +3735,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d00000002000000
Skills: 080000002b0000000d000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3761,7 +3761,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d0000008100000002000000
Skills: 080000002b0000000d00000081000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3787,7 +3787,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d000000810000008400000002000000
Skills: 080000002b0000000d0000008100000084000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3807,6 +3807,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 16
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3830,7 +3831,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d0000008b000000920000008400000002000000
Skills: 080000002b0000000d0000008b0000009200000084000000020000000d010000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3850,6 +3851,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 16
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3867,6 +3869,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 17
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3890,7 +3893,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000730000000200000074000000d0000000
Skills: 0d000000730000000200000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3916,7 +3919,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d0000007a000000020000007500000074000000d0000000
Skills: 0d0000007a000000020000007500000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3942,7 +3945,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000020000007a0000007600000074000000d0000000
Skills: 0d000000020000007a0000007600000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3968,7 +3971,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d0000007a00000002000000760000004700000074000000d0000000
Skills: 0d0000007a00000002000000760000004700000074000000d00000000c010000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5112,7 +5115,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5138,7 +5141,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000003000000630000000d000000
Skills: 0200000003000000630000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5164,7 +5167,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 020000000300000063000000640000000d000000
Skills: 020000000300000063000000640000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5184,6 +5187,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 13
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -5207,7 +5211,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000300000065000000640000000d000000
Skills: 020000000300000065000000640000000d0000000d010000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5227,6 +5231,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 13
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -5250,7 +5255,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000d0000000c00000003000000
Skills: 020000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5276,7 +5281,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005a0000000d0000000c00000003000000
Skills: 02000000510000005a0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5302,7 +5307,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005b0000005a0000000d0000000c00000003000000
Skills: 02000000510000005b0000005a0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5328,7 +5333,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 3
Cost: 0
Skills: 0200000051000000030100005a0000005b0000000d0000000c00000003000000
Skills: 0200000051000000030100005a0000005b0000000d0000000c000000030000000c010000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5452,6 +5457,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 11
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -5574,7 +5580,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 20
Attack: 2.5
Attack: 2
Defense: 3
MoveRange: 1
AttackRange: 1
@ -5677,6 +5683,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 12
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -5986,7 +5993,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000
Skills: 0200000094000000960000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6012,7 +6019,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b80000009a000000
Skills: 020000009400000096000000b80000009a0000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6032,6 +6039,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 19
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6055,7 +6063,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b9000000b7000000
Skills: 020000009400000096000000b9000000b70000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6075,6 +6083,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 19
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6098,7 +6107,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000009400000096000000b9000000b7000000c0000000
Skills: 020000009400000096000000b9000000b7000000c00000000d010000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6118,6 +6127,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 19
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6141,7 +6151,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000
Skills: 020000000c0000009b0000009c0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6167,7 +6177,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000
Skills: 020000000c0000009b0000009c000000ba0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6193,7 +6203,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000bb000000
Skills: 020000000c0000009b0000009c000000ba000000bb0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6219,7 +6229,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c0000009b0000009c000000ba000000bb000000bc000000
Skills: 020000000c0000009b0000009c000000ba000000bb000000bc0000000c010000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6421,6 +6431,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 21
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6464,6 +6475,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 21
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6482,7 +6494,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 20
Attack: 3
Attack: 2.5
Defense: 3
MoveRange: 1
AttackRange: 1
@ -6508,7 +6520,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 30
Attack: 3.5
Attack: 3
Defense: 3
MoveRange: 1
AttackRange: 1
@ -6591,7 +6603,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e000000002000000
Skills: e0000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6617,7 +6629,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d300000002000000
Skills: e0000000d3000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6643,7 +6655,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d3000000d400000002000000
Skills: e0000000d3000000d4000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6669,7 +6681,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: e0000000d3000000d4000000f200000002000000
Skills: e0000000d3000000d4000000f2000000020000000d010000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6692,10 +6704,10 @@ MonoBehaviour:
MaxHealth: 5
Attack: 2
Defense: 1
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc00000003000000e100000002000000
Skills: db0000000c000000dc00000003000000e1000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6718,10 +6730,10 @@ MonoBehaviour:
MaxHealth: 10
Attack: 2
Defense: 1
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e100000002000000
Skills: db0000000c000000dc000000030000001d000000e1000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6744,10 +6756,10 @@ MonoBehaviour:
MaxHealth: 10
Attack: 2
Defense: 2
MoveRange: 2
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000
Skills: db0000000c000000dc000000030000001d000000e1000000e2000000020000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6773,7 +6785,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000dd000000
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000dd0000000c010000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6845,6 +6857,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 23
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6888,6 +6901,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 22
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6905,6 +6919,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 23
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6948,6 +6963,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 22
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6965,6 +6981,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 23
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -7087,7 +7104,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 15
Attack: 3
Attack: 2
Defense: 3
MoveRange: 1
AttackRange: 1
@ -7113,7 +7130,7 @@ MonoBehaviour:
LandType: 1
NoMaxHealth: 0
MaxHealth: 25
Attack: 3
Attack: 2.5
Defense: 3
MoveRange: 1
AttackRange: 1
@ -7723,6 +7740,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 24
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -7954,7 +7972,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7980,7 +7998,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8006,7 +8024,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8032,7 +8050,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8058,7 +8076,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8084,7 +8102,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8110,7 +8128,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8136,7 +8154,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8162,7 +8180,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8188,7 +8206,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8214,7 +8232,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8240,7 +8258,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8266,7 +8284,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8292,7 +8310,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8318,7 +8336,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -8344,7 +8362,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Skills: 02000000030000000d0000000d010000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []

View File

@ -12,8 +12,18 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
m_Name: VersionConfig
m_EditorClassIdentifier:
CurVersionId: 70202
CurVersionId: 70301
Versions:
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 3
Description: 21043
FourthVersion: 1
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 3
Description: 21039
FourthVersion: 0
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 2

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a95e9645017b445787c2089711dc2318, type: 3}
m_Name: VisualSpriteVariantMap
m_EditorClassIdentifier:
Pairs:
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 94d08b14820ccb24eb2b87e651486e99, type: 3}
EyeComfort: {fileID: 21300000, guid: b616e949499c4da1912623240e7acfc9, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 8d630227ae5811a458084cd996dce259, type: 3}
EyeComfort: {fileID: 21300000, guid: 6b07f6edabe946159dcd8df181554b2a, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: ad0de484a4e625345971d368d2d59a9e, type: 3}
EyeComfort: {fileID: 21300000, guid: 7254935ca87749c786440a56bcd5ea04, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: d41e9bfdb0aaf0c44995991a435c3cd8, type: 3}
EyeComfort: {fileID: 21300000, guid: 233d6c49ea5f46bea6dac4f5ffbd0b1b, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 0fa66ddbaa79132408fbfc61d5e0d9aa, type: 3}
EyeComfort: {fileID: 21300000, guid: 051505e0084c48aa87f9cab866e0a4ea, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 583ea1b8d676e5a479fbcab5d53b1f9d, type: 3}
EyeComfort: {fileID: 21300000, guid: 0346fc36ed704bf690ba2e53999813fc, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: c3fb107044a0c3b45a457f49fab3cc5b, type: 3}
EyeComfort: {fileID: 21300000, guid: 32c16226bfc8413dbf7ef112f0da993a, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 20ad2e91f36031244b6c560034296648, type: 3}
EyeComfort: {fileID: 21300000, guid: 686bf6f7d20d48229f9d85da35210df5, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 4d9c1678e6659ad419c02ed58c218157, type: 3}
EyeComfort: {fileID: 21300000, guid: 3fbb98f6251d4730a7d1e7f69d3daeaf, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 2561646e9b612904790b2dd62bfd6373, type: 3}
EyeComfort: {fileID: 21300000, guid: 427fc040c61048909ba31fbde82e8ed6, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: e922a01ab52db1d49b99c764af1e0bba, type: 3}
EyeComfort: {fileID: 21300000, guid: 17d2a8aae7d6440fbac6e4bd77732010, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 984035e87e87a844389570f33038a17f, type: 3}
EyeComfort: {fileID: 21300000, guid: 7d6d812d64f543edaa31b6513e7ff17f, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 5479e4ea015ba93489fb506fa7c64457, type: 3}
EyeComfort: {fileID: 21300000, guid: 0ca6ee22c9724dad9d0faec41a25cbe9, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: bfc65020b78917b40a368c644bead685, type: 3}
EyeComfort: {fileID: 21300000, guid: 729b5af585d443e0883b37871b1f5690, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: c5e1ab2a4a1da374a97e15adcbac3bbf, type: 3}
EyeComfort: {fileID: 21300000, guid: 606441faefe5428180eaea02d908a736, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: c1333ad4ade2687449683f74b1a79273, type: 3}
EyeComfort: {fileID: 21300000, guid: 61c7140c327740b3b5d9c959aab72d70, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 6725daee0faa6e7419ce0d6caa953652, type: 3}
EyeComfort: {fileID: 21300000, guid: 32bf163ed414410d86ad0a6986a94013, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 7d843dd58cca48f48ad44a483d593f78, type: 3}
EyeComfort: {fileID: 21300000, guid: 6d8767fb01db401a80164a6c789d8c6a, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 3cbabce4061702e47baa58831c5204e5, type: 3}
EyeComfort: {fileID: 21300000, guid: fa72e18fbb7b4753b8466a75915afeb3, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 213e09df9c9c4a144977303dc11c8b69, type: 3}
EyeComfort: {fileID: 21300000, guid: 87034b5b717a4676a5453b16f169d621, type: 3}
- Group: GridObject/Ground
Source: {fileID: 21300000, guid: 5f6e5da4f97fa854fb17cd588cf6078f, type: 3}
EyeComfort: {fileID: 21300000, guid: 3f647398edea4cfa95cc2a9449c46b9c, type: 3}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 10b8698a9c075364a8a7cc3f077f38c8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -37,6 +37,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -56,6 +57,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -97,6 +99,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -116,6 +119,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -157,6 +161,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -176,6 +181,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -217,6 +223,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -236,6 +243,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -277,6 +285,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -296,6 +305,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -337,6 +347,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -356,6 +367,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -397,6 +409,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -416,6 +429,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -464,6 +478,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -483,6 +498,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -524,6 +540,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -543,6 +560,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -584,6 +602,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -603,6 +622,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -282,6 +282,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -301,6 +302,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -4148,6 +4148,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4167,6 +4168,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -153,6 +153,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -172,6 +173,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -922,7 +924,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0.4119873, y: -26.200012}
m_AnchoredPosition: {x: 37.3, y: 53}
m_SizeDelta: {x: 56.287003, y: 23.851501}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4041220032658855136

View File

@ -317,6 +317,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -336,6 +337,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -275,6 +275,11 @@ MonoBehaviour:
CantBuyTextColor: {r: 1, g: 0.028301716, b: 0.028301716, a: 1}
BuyButton: {fileID: 3705736563419011688}
Cost: {fileID: 3756139978723511322}
CostIcon: {fileID: 6012864519068464267}
CultureCostSprite: {fileID: 21300000, guid: b2371f7abd2c8d746ba7928bfc9c5586, type: 3}
CoinCostSprite: {fileID: 21300000, guid: 794e6f091dd8fad4997bc9d682636790, type: 3}
CultureCostColor: {r: 0.7019608, g: 0.2627451, b: 0.7607843, a: 1}
CoinCostColor: {r: 1, g: 1, b: 1, a: 1}
--- !u!1 &8567056009151112732
GameObject:
m_ObjectHideFlags: 0
@ -340,7 +345,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 5f715706bcc39154abc1f48750aebf33, type: 3}
m_Sprite: {fileID: 21300000, guid: b2371f7abd2c8d746ba7928bfc9c5586, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1

View File

@ -1503,6 +1503,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1522,6 +1523,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1703,6 +1705,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1722,6 +1725,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2965,6 +2969,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2984,6 +2989,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -7448,6 +7454,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -7467,6 +7474,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -8195,6 +8203,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -8214,6 +8223,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -397,6 +397,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -416,6 +417,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4752,6 +4754,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4771,6 +4774,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6787,6 +6791,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -6806,6 +6811,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -3080,6 +3080,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3099,6 +3100,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3219,6 +3221,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3238,6 +3241,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4390,6 +4394,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4409,6 +4414,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -600,6 +600,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -619,6 +620,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -121,6 +121,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -140,6 +141,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -469,6 +469,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -488,6 +489,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -2034,6 +2034,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -2053,6 +2054,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -25159,6 +25161,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -25178,6 +25181,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -28033,6 +28037,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -28052,6 +28057,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -8667,6 +8667,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -8686,6 +8687,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -688,6 +688,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -707,6 +708,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -198,6 +198,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -217,6 +218,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1257,6 +1259,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -1276,6 +1279,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3306,6 +3310,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -3325,6 +3330,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4166,6 +4172,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -4185,6 +4192,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -405,6 +405,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
@ -424,6 +425,7 @@ MonoBehaviour:
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
CityActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0

View File

@ -273,7 +273,7 @@ MonoBehaviour:
NoExport: 0
FontBan: 0
Preset: 0
ID: 17753
ID: 21018
FontID: 1
TextCfg:
- Type: 1
@ -9463,6 +9463,7 @@ MonoBehaviour:
BgmContinuousToggle: {fileID: 5173756232815940152}
CityBorderAlwaysToggle: {fileID: 7449948995218195977}
ConfirmNextTurnToggle: {fileID: 1128881828376385442}
EyeComfortToggle: {fileID: 0}
MoreLanguageModule: {fileID: 7088314466326854064}
NowUsingLanguageText: {fileID: 9109790349295146539}
ManageButton: {fileID: 266385876390542388}

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 6c8446f02a8e8c34ea102c682bb00fc4
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: fc0f2c0896702b04882773d9a9cd711f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -594,6 +594,11 @@ namespace TH1_Core.Events
}
private void HandleUpdateUITopTopBar(UpdateUITopTopBar evt)
{
if (evt.UpdateType == UpdateTopBarType.UpdateAllInstant)
{
UIManager.Instance.UITopManager?.TopBarController?.UpdateView();
return;
}
if (evt.UpdateType == UpdateTopBarType.UpdateTurn)
{
EventManager.Publish(new ShowUINotifyCommon() { UINotifyCommonType = UINotifyCommonType.TurnHint });

View File

@ -133,6 +133,7 @@ namespace TH1_Core.Events
TurnHint,
ExamineTech,
ExamineCityExp,
ExamineCulture,
InfiltrateStealCoin,
OutsideMultiplayRoomFull,
OutsideMultiplayRoomGone,

View File

@ -498,6 +498,8 @@ namespace RuntimeData
public void OnTurnStart(MapData map)
{
Turn++;
if (Turn == 1 && PlayerCultureInfo.PlayerCulture == 0)
PlayerCultureInfo.PlayerCulture = 4;
//减少1点伟人复活冷却的时间点
for (int i = 0; i < 6; i++)
if (giantPenalty[i] > 0) giantPenalty[i]--;
@ -541,7 +543,12 @@ namespace RuntimeData
public bool IsSelfPlayer()
{
return Main.MapData.PlayerMap.SelfPlayerData == this;
return IsSelfPlayerOnMainMap();
}
private bool IsSelfPlayerOnMainMap()
{
return Main.MapData?.PlayerMap?.SelfPlayerData == this;
}
// 添加当前回合攻击者
public void AddAttacker(uint playerId)
@ -574,7 +581,7 @@ namespace RuntimeData
_playerCoin += coin;
foreach (var kv in PlayerHeroData.HeroTaskDict) kv.Value.OnAddCoin((uint)coin);
//如果加钱的是真人自己玩家,并且有金币来源位置,那么播动画
if (Main.MapData.PlayerMap.SelfPlayerData == this)
if (IsSelfPlayerOnMainMap())
{
EventManager.Publish(new UpdateUITopTopBar() { UpdateType = UpdateTopBarType.UpdateCoin });
MapRenderer.Instance.ProjectileManager.CreateCoinProjectile(startPos,coin);
@ -586,7 +593,7 @@ namespace RuntimeData
public void AddCoin_ViewOnly(int coin, Vector3 startPos)
{
if (Main.MapData.PlayerMap.SelfPlayerData == this)
if (IsSelfPlayerOnMainMap())
{
EventManager.Publish(new UpdateUITopTopBar() { UpdateType = UpdateTopBarType.UpdateCoin });
MapRenderer.Instance.ProjectileManager.CreateCoinProjectile(startPos,coin);
@ -608,13 +615,16 @@ namespace RuntimeData
_playerCoin += coin;
foreach (var kv in PlayerHeroData.HeroTaskDict) kv.Value.OnAddCoin((uint)coin);
//如果加钱的是真人自己玩家,并且有金币来源位置,那么播动画。暂时用legacy方案
if (Main.MapData.PlayerMap.SelfPlayerData == this && grid != null)
//如果加钱的是真人自己玩家,则刷新金币;如果有金币来源位置,再播放动画。暂时用legacy方案
if (IsSelfPlayerOnMainMap())
{
EventManager.Publish(new UpdateUITopTopBar() { UpdateType = UpdateTopBarType.UpdateCoin });
var startPos = Table.Instance.GridToWorld(grid);
MapRenderer.Instance.ProjectileManager.CreateCoinProjectile(startPos,coin);
AudioManager.Instance.PlayAudio("SFX/PLAYER_coin");
if (grid != null)
{
var startPos = Table.Instance.GridToWorld(grid);
MapRenderer.Instance.ProjectileManager.CreateCoinProjectile(startPos,coin);
AudioManager.Instance.PlayAudio("SFX/PLAYER_coin");
}
//真人自己玩家,提前检查财富奇观,方便弹出提示
Main.PlayerLogic.UpdateWonder(Main.MapData,Main.MapData.PlayerMap.SelfPlayerData,WonderTypeEnum.WEALTH);
}
@ -1300,6 +1310,7 @@ namespace RuntimeData
public void OnAfterMemoryPackDeserialize()
{
TechAtomActionCacheSet ??= new HashSet<uint>();
TechAtomCacheSet ??= new HashSet<TechAtom>();
foreach (var tech in TechSet)
{
var techInfo = Table.Instance.TechDataAssets.GetTechInfo(tech);
@ -1809,6 +1820,18 @@ namespace RuntimeData
return 0;
}
public uint GetMaxHeroLevelByChessType(ChessType chessType)
{
uint ret = 0;
foreach (var heroType in HeroList)
{
if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(heroType, out var info)) continue;
if (info.ChessType != chessType) continue;
if (heroType.UnitLevel > ret) ret = heroType.UnitLevel;
}
return ret;
}
//返回现在外部的herobutton应该显示谁的头像
public Sprite GetHeroButtonSprite()
{
@ -1958,8 +1981,8 @@ namespace RuntimeData
if (!Table.Instance.CultureCardDataAssets.GetCultureCardInfo(cardType, out var info)) return false;
if (!info.CheckEmpireCanUseCard(player.Empire)) return false;
if (!info.CheckPrerequisiteCardsOwned(player)) return false;
if (PlayerCulture < info.Cost) return false;
PlayerCulture -= info.Cost;
if (!info.CheckPlayerCanAfford(player)) return false;
info.SpendCost(player);
CultureCardList.Add(cardType);
var card = CultureCardFactory.GetCultureCardBase(cardType);
card.OnGetCultureCard(map, player);
@ -1973,7 +1996,7 @@ namespace RuntimeData
if (!Table.Instance.CultureCardDataAssets.GetCultureCardInfo(cardType, out var info)) return false;
if (!info.CheckEmpireCanUseCard(player.Empire)) return false;
if (!info.CheckPrerequisiteCardsOwned(player)) return false;
if (PlayerCulture < info.Cost) return false;
if (!info.CheckPlayerCanAfford(player)) return false;
return true;
}

View File

@ -955,6 +955,11 @@ namespace RuntimeData
{
return GetBaseDefenseValue(map, target) * GetDefenseMultiplicationParam(map, target);
}
public float GetAllDefenseValueIgnoringPositiveBonus(MapData map, UnitData target = null)
{
return GetBaseDefenseValueIgnoringPositiveBonus(map, target) * GetDefenseMultiplicationParamIgnoringPositiveBonus(map, target);
}
// 防御力加算系数
public float GetDefenseAdditionParam(MapData map, UnitData target = null)
@ -968,6 +973,20 @@ namespace RuntimeData
}
return value;
}
public float GetBaseDefenseValueIgnoringPositiveBonus(MapData map, UnitData target = null)
{
if(!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(UnitFullType, out var info)) return 0;
var value = info.Defense;
var isFrozen = IsFrozen();
foreach (var skill in Skills)
{
if (isFrozen && IsSkillFrozenFilter(skill)) continue;
var t = skill.GetDefenseAdditionParam(map, this, target);
if (t < 0f) value += t;
}
return value;
}
//只用于显示防御外壳判断用的系数计算(会去除<1的乘算因子)
public float GetDefenseMultiplicationParamOnlyForDefenseShow(MapData map, UnitData target = null)
@ -1044,6 +1063,32 @@ namespace RuntimeData
return buffValue * debuffMult;
}
public float GetDefenseMultiplicationParamIgnoringPositiveBonus(MapData map, UnitData target = null)
{
var debuffMult = 1f;
var isZero = 1f;
var isFrozen = IsFrozen();
foreach (var skill in Skills)
{
if (isFrozen && IsSkillFrozenFilter(skill)) continue;
var t = skill.GetDefenseMultiplicationParam(map, this, target);
isZero *= t;
if (t < 1f)
debuffMult *= t;
}
var p = GetTerrainDefenseMultiplicationParam(map);
if (p < 1f)
debuffMult *= p;
isZero *= p;
if (isZero == 0f) return 0f;
return debuffMult;
}
public bool IgnorePositiveTargetDefenseBonus(MapData map, UnitData target)
{
if (map == null || target == null) return false;
@ -1057,6 +1102,19 @@ namespace RuntimeData
return false;
}
public int GetHeroUpgradeRecoverAddition(MapData map)
{
if (map == null) return 0;
var recoverAddition = 0;
var isFrozen = IsFrozen();
foreach (var skill in Skills)
{
if (isFrozen && IsSkillFrozenFilter(skill)) continue;
recoverAddition += skill.GetHeroUpgradeRecoverAddition(map, this);
}
return recoverAddition;
}
#region [------------------------------------------------------------------ AttackAlly ------------------------------------------------------------------]
/// <summary>

View File

@ -18,6 +18,12 @@ public enum CultureType
// 市政卡唯一标识符枚举Data Asset用到不能随意修改顺序
public enum CultureCardCostType
{
Culture,
Coin
}
public enum CultureCardType
{
None,
@ -79,6 +85,9 @@ public class CultureCardInfo
[Tooltip("卡片消耗成本")]
public int Cost;
[Tooltip("购买该法典消耗的资源类型")]
public CultureCardCostType BuyCostType = CultureCardCostType.Culture;
[Tooltip("卡片图标")]
public Sprite Icon;
@ -109,6 +118,28 @@ public class CultureCardInfo
return Icon;
}
public int GetPlayerCostResource(PlayerData player)
{
if (player == null) return 0;
return BuyCostType == CultureCardCostType.Coin
? player.PlayerCoin
: player.PlayerCultureInfo.PlayerCulture;
}
public bool CheckPlayerCanAfford(PlayerData player)
{
return GetPlayerCostResource(player) >= Cost;
}
public void SpendCost(PlayerData player)
{
if (player == null) return;
if (BuyCostType == CultureCardCostType.Coin)
player.SpendCoin(Cost);
else
player.AddCulturePoint(-Cost);
}
[Tooltip("是否解锁/可购买该卡片的前提科技要求(可为空)")]
public List<TechType> RequiredTechs = new List<TechType>();

View File

@ -170,6 +170,7 @@ public enum TechAtom
TrainUnitKomeijiRider,
TrainUnitKomeijiKnight,
TrainUnitKomeijiFairyBigGuy,
BuildCityWall,
}

View File

@ -111,6 +111,7 @@ public class TextDataAssets : ScriptableObject
[MultilingualField] public string NotifyUITechHint;
[MultilingualField] public string NotifyUIExamineTechHint;
[MultilingualField] public string NotifyUIExamineCityExpHint;
[MultilingualField] public string NotifyUIExamineCultureHint;
[MultilingualField] public string NotifyUITurnHint;
[MultilingualField] public string NotifyUIInfiltrateStealCoin;
@ -166,4 +167,4 @@ public class GiantUpgradeText
{
public GiantType GiantType;
[MultilingualField] public string UpgradeText;
}
}

View File

@ -40,6 +40,7 @@ public enum ChessType {None,King,Queen,Bishop,Knight,Rook,PawnWarrior,PawnArcher
public enum MoveAttackType { None,Move,Attack,MoveToPort,MoveAshore,Ally,MoveTeleport,AttackGround}
public enum CityLevelUpActionType{None,Explorer,Workshop,CityWall,CityWealth,Expand,Population,Park,BigGuy}
public enum CityActionType{None,BuildCityWall}
public enum Forces
{

View File

@ -68,6 +68,7 @@ namespace Logic.Action
UnitAttackGround,
PlayerSurrender,
BuyCultureCard,
CityAction,
}
@ -287,6 +288,7 @@ namespace Logic.Action
public Vegetation Vegetation;
public UnitActionType UnitActionType;
public CityLevelUpActionType CityLevelUpActionType;
public CityActionType CityActionType;
public GridMiscActionType GridMiscActionType;
public SkillType SkillType;
public TechType TechType;
@ -319,6 +321,7 @@ namespace Logic.Action
hash = hash * 31 + Vegetation.GetHashCode();
hash = hash * 31 + UnitActionType.GetHashCode();
hash = hash * 31 + CityLevelUpActionType.GetHashCode();
hash = hash * 31 + CityActionType.GetHashCode();
hash = hash * 31 + GridMiscActionType.GetHashCode();
hash = hash * 31 + SkillType.GetHashCode();
hash = hash * 31 + TechType.GetHashCode();
@ -345,6 +348,7 @@ namespace Logic.Action
if (a.Vegetation != b.Vegetation) return false;
if (a.UnitActionType != b.UnitActionType) return false;
if (a.CityLevelUpActionType != b.CityLevelUpActionType) return false;
if (a.CityActionType != b.CityActionType) return false;
if (a.GridMiscActionType != b.GridMiscActionType) return false;
if (a.SkillType != b.SkillType) return false;
if (a.TechType != b.TechType) return false;
@ -401,6 +405,7 @@ namespace Logic.Action
log += $"Vegetation : {Vegetation}\n";
log += $"UnitAction : {UnitActionType}\n";
log += $"CityLevelUpAction : {CityLevelUpActionType}\n";
log += $"CityAction : {CityActionType}\n";
log += $"GridMiscAction : {GridMiscActionType}\n";
log += $"Skill : {SkillType}\n";
log += $"Tech : {TechType}\n";
@ -707,6 +712,17 @@ namespace Logic.Action
};
ActionLogicDict[commonActionId] = new CityLevelUpActionAction(commonActionId);
}
foreach (CityActionType cityActionType in System.Enum.GetValues(typeof(CityActionType)))
{
if (cityActionType == CityActionType.None) continue;
commonActionId = new CommonActionId
{
ActionType = CommonActionType.CityAction,
CityActionType = cityActionType
};
ActionLogicDict[commonActionId] = new CityAction(commonActionId);
}
//unitAction自身行为的各个行为逻辑
foreach (UnitActionType unitActionType in System.Enum.GetValues(typeof(UnitActionType)))
@ -1019,6 +1035,7 @@ namespace Logic.Action
if (actionType == CommonActionType.GridMisc) return MainObjectType.Grid;
if (actionType == CommonActionType.UnitAction) return MainObjectType.Unit;
if (actionType == CommonActionType.CityLevelUpAction) return MainObjectType.City;
if (actionType == CommonActionType.CityAction) return MainObjectType.City;
if (actionType == CommonActionType.UnitSkill) return MainObjectType.Unit;
if (actionType == CommonActionType.LearnTech) return MainObjectType.Player;
if (actionType == CommonActionType.UnitMove) return MainObjectType.Unit;
@ -1032,6 +1049,58 @@ namespace Logic.Action
}
}
public class CityAction : ActionLogicBase
{
public CityAction(CommonActionId id) : base(id)
{
}
protected override bool Execute(CommonActionParams actionParams)
{
if (_actionId.CityActionType != CityActionType.BuildCityWall) return false;
if (!CheckCan(actionParams)) return false;
actionParams.PlayerData.SpendCoin(GetCost(actionParams));
actionParams.CityData.CityWall = true;
actionParams.CityData.SetCityRenderer(actionParams.MapData);
actionParams.CityData.Grid(actionParams.MapData)?.Renderer(actionParams.MapData)?.InstantUpdateGrid(true);
return true;
}
public override bool CheckCan(CommonActionParams actionParams)
{
if (_actionId.CityActionType != CityActionType.BuildCityWall) return false;
if (actionParams?.MapData == null) return false;
if (actionParams.PlayerData == null) return false;
if (actionParams.CityData == null) return false;
if (actionParams.MainObjectType != MainObjectType.City) return false;
if (actionParams.CityData.CityWall) return false;
if (!actionParams.MapData.CheckCityIdBelongPlayerId(actionParams.CityData.Id, actionParams.PlayerData.Id)) return false;
if (!actionParams.PlayerData.TechTree.CheckIfHasTechAtom(TechAtom.BuildCityWall)) return false;
if (actionParams.PlayerData.PlayerCoin < GetCost(actionParams)) return false;
return true;
}
public override bool CheckShow(CommonActionParams actionParams, out ShowType showType)
{
showType = ShowType.None;
if (_actionId.CityActionType != CityActionType.BuildCityWall) return false;
if (actionParams?.MapData == null) return false;
if (actionParams.PlayerData == null) return false;
if (actionParams.CityData == null) return false;
if (actionParams.MainObjectType != MainObjectType.City) return false;
if (actionParams.CityData.CityWall) return false;
if (!actionParams.MapData.CheckCityIdBelongPlayerId(actionParams.CityData.Id, actionParams.PlayerData.Id)) return false;
if (!actionParams.PlayerData.TechTree.CheckIfHasTechAtom(TechAtom.BuildCityWall))
{
return false;
}
if (actionParams.PlayerData.PlayerCoin < GetCost(actionParams)) showType = ShowType.Cost;
return true;
}
}
// 行为基类
public abstract class ActionLogicBase
@ -1086,7 +1155,7 @@ namespace Logic.Action
return true;
}
public int GetCost(CommonActionParams actionParams)
public virtual int GetCost(CommonActionParams actionParams)
{
if (!Table.Instance.ActionDataAssets.GetActionInfo(_actionId, out var info)) return 0;
//preserve特别的计算cost方式

View File

@ -420,6 +420,41 @@ namespace Logic.Action
return false;
}
private bool TryGetHeroReviveInfo(CommonActionParams actionParam, out int chessIndex, out int coldTime, out int cultureCost)
{
chessIndex = -1;
coldTime = 0;
cultureCost = 0;
if (actionParam?.PlayerData?.PlayerHeroData == null) return false;
if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(UnitType.Giant, _actionId.GiantType, 1,
out var info)) return false;
chessIndex = (int)info.ChessType;
if (actionParam.PlayerData.giantPenalty == null
|| chessIndex < 0
|| chessIndex >= actionParam.PlayerData.giantPenalty.Length) return false;
coldTime = actionParam.PlayerData.giantPenalty[chessIndex];
if (coldTime <= 0) return false;
uint heroLevel = actionParam.PlayerData.PlayerHeroData.GetHeroLevel(_actionId.GiantType);
long rawCost = (long)heroLevel * coldTime * 5;
cultureCost = rawCost > int.MaxValue ? int.MaxValue : (int)rawCost;
return cultureCost > 0;
}
public override int GetCost(CommonActionParams actionParams)
{
return TryGetHeroReviveInfo(actionParams, out _, out _, out var cultureCost)
? cultureCost
: base.GetCost(actionParams);
}
private bool CanPayHeroReviveCulture(CommonActionParams actionParam)
{
return TryGetHeroReviveInfo(actionParam, out _, out _, out var cultureCost)
&& actionParam.PlayerData.PlayerCultureInfo.PlayerCulture >= cultureCost;
}
/// <summary>
/// 判断场上的英雄数量是否已经达到 SameUnitCountLimit 上限
/// </summary>
@ -452,6 +487,7 @@ namespace Logic.Action
{
//step #0 鲁棒性检查
if (!CheckCan(actionParams)) return false;
bool spendReviveCulture = TryGetHeroReviveInfo(actionParams, out var reviveChessIndex, out _, out var reviveCultureCost);
//step #1 获得准确的gridData和对应的cityData
//step #1 part1 如果是city产英雄
if (actionParams.MainObjectType == MainObjectType.City)
@ -479,6 +515,11 @@ namespace Logic.Action
if (!actionParams.MapData.AddUnitData(_finalGrid.Id, _finalCity.Id,
new UnitFullType(_actionId.UnitType, _actionId.GiantType, realLv), out _newUnit))
return false;
if (spendReviveCulture)
{
actionParams.PlayerData.AddCulturePoint(-reviveCultureCost);
actionParams.PlayerData.giantPenalty[reviveChessIndex] = 0;
}
//播放音效
if(_newUnit.InMainSight())
@ -531,7 +572,7 @@ namespace Logic.Action
//step #6 如果城市上面有单位,不能生产,不显示
if (TrainUnitActionCheckUnitOnCity(actionParam)) return false;
//step #7 如果英雄在冷却cd
if (CheckGiantHasColdTime(actionParam)) return false;
if (CheckGiantHasColdTime(actionParam) && !CanPayHeroReviveCulture(actionParam)) return false;
//step #8 如果英雄违反了UNIQUE或类似的技能如QUARTET
if (CheckHeroReachMaxCount(actionParam)) return false;
@ -555,7 +596,7 @@ namespace Logic.Action
//step #6如果格子上面有单位不能生产不显示
if (TrainUnitActionCheckUnitOnGrid(actionParam)) return false;
//step #7 如果英雄在冷却cd
if (CheckGiantHasColdTime(actionParam)) return false;
if (CheckGiantHasColdTime(actionParam) && !CanPayHeroReviveCulture(actionParam)) return false;
//step #8 如果英雄违反了UNIQUE或类似的技能如QUARTET
if (CheckHeroReachMaxCount(actionParam)) return false;
@ -738,4 +779,4 @@ namespace Logic.Action
}
}
}
}

View File

@ -382,6 +382,8 @@ namespace Logic.Action
else if (value == 3)
{
actionParams.PlayerData.AddCulturePoint(4);
if (actionParams.PlayerData.IsSelfPlayer())
EventManager.Publish(new ShowUINotifyCommon(){UINotifyCommonType = UINotifyCommonType.ExamineCulture});
}
//给首都3点城市经验
else
@ -754,6 +756,11 @@ namespace Logic.Action
return UnitActionUpgradeHelper.ApplyOfficerUpgrade(actionParams.MapData, actionParams.UnitData);
}
public override int GetCost(CommonActionParams actionParams)
{
return UnitActionUpgradeHelper.TryGetCultureUnitUpgradeCost(actionParams?.UnitData, out var cost) ? cost : 0;
}
public override bool CheckCan(CommonActionParams actionParam)
{
if (!UnitActionCheckBaseInfo(actionParam)) return false;
@ -832,7 +839,7 @@ namespace Logic.Action
if (!Main.UnitLogic.HeroUpgrade(actionParams.MapData, unit)) return false;
//step #3 回复10点血
unit.AddHealth(10);
unit.AddHealth(10 + unit.GetHeroUpgradeRecoverAddition(actionParams.MapData));
//更新视觉自动排除非真map情况和不在视野情况
if(actionParams.UnitData.Renderer(actionParams.MapData)?.InstantUpdateUnit(true)??false){
@ -860,7 +867,7 @@ namespace Logic.Action
var otherTargetType = new UnitFullType()
{ UnitType = other.UnitType, GiantType = other.GiantType, UnitLevel = (uint)targetLevel };
Main.UnitLogic.UnitTypeTransform(actionParams.MapData, other, otherTargetType);
other.AddHealth(10);
other.AddHealth(10 + other.GetHeroUpgradeRecoverAddition(actionParams.MapData));
other.Renderer(actionParams.MapData)?.InstantUpdateUnit(true);
//同类英雄升级后也更新视野
if (other.Grid(actionParams.MapData) != null)

View File

@ -92,6 +92,8 @@ namespace Logic
public void Update()
{
#if UNITY_EDITOR || USE_INPUT
if (InputTextFocusUtility.IsTextInputFocused()) return;
if (Input.GetKeyDown(KeyCode.F4))
{
foreach (var unit in Main.MapData.UnitMap.UnitList)
@ -140,4 +142,4 @@ namespace Logic
public Strategy Strategy;
public uint TargetCityId;
}
}
}

View File

@ -68,6 +68,8 @@ namespace TH1_Logic.HeroTask
AccumulateRelicsOpenedIncludeOthers,
// 累计占领他人城市{param1}个或者占领村庄{param2}个
AccumulateCaptureOtherCitiesOrVillages,
// 累计承受伤害和造成伤害
AccumulateDamageTakenAndDealt,
}
@ -95,6 +97,7 @@ namespace TH1_Logic.HeroTask
[MemoryPackUnion(21, typeof(HeroTaskContentTargetTypeAreasExplored))]
[MemoryPackUnion(22, typeof(HeroTaskContentTargetAccumulateRelicsOpenedIncludeOthers))]
[MemoryPackUnion(23, typeof(HeroTaskContentAccumulateCaptureOtherCitiesOrVillages))]
[MemoryPackUnion(24, typeof(HeroTaskContentAccumulateDamageTakenAndDealt))]
public abstract partial class HeroTaskContentBase
{
public bool IsSelf;
@ -331,6 +334,34 @@ namespace TH1_Logic.HeroTask
Level += (uint)info.HealthReduceValue;
}
}
[MemoryPackable]
public partial class HeroTaskContentAccumulateDamageTakenAndDealt : HeroTaskContentBase
{
public override HeroTaskContentType GetContentType()
{
return HeroTaskContentType.AccumulateDamageTakenAndDealt;
}
public override HeroTaskContentBase GetCopyHeroTaskContent()
{
var newContent = new HeroTaskContentAccumulateDamageTakenAndDealt();
newContent.Level = Level;
newContent.TargetLevel = TargetLevel;
return newContent;
}
public override void OnDamaged(MapData mapData, SettlementInfo info)
{
Level += (uint)info.HealthReduceValue;
}
public override void OnDamageOther(MapData mapData, SettlementInfo info)
{
Level += (uint)info.HealthReduceValue;
}
}
[MemoryPackable]
@ -896,4 +927,4 @@ namespace TH1_Logic.HeroTask
Level++;
}
}
}
}

View File

@ -43,6 +43,8 @@ namespace TH1_Logic.HeroTask
return "累计承受伤害";
if (contentType == HeroTaskContentType.AccumulateDamageDealt)
return "累计造成伤害";
if (contentType == HeroTaskContentType.AccumulateDamageTakenAndDealt)
return "累计承受伤害和造成伤害";
if (contentType == HeroTaskContentType.AccumulateKills)
return "累计杀人";
if (contentType == HeroTaskContentType.AccumulateHealing)
@ -60,4 +62,4 @@ namespace TH1_Logic.HeroTask
return "";
}
}
}
}

View File

@ -11,7 +11,10 @@ using System.IO;
using Logic.CrashSight;
using MemoryPack;
using TH1_Logic.Tools;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace Logic
@ -116,8 +119,20 @@ namespace Logic
public void Update()
{
UpdateConfigListening();
if (InputTextFocusUtility.IsTextInputFocused())
{
ClearInputActiveState();
return;
}
UpdateConfigActive();
}
private void ClearInputActiveState()
{
if (_config?.InputKeyConfigs == null) return;
foreach (var keyConfig in _config.InputKeyConfigs)
keyConfig.IsActive = false;
}
private void UpdateConfigListening()
{
@ -220,4 +235,28 @@ namespace Logic
}
}
}
}
public static class InputTextFocusUtility
{
public static bool IsTextInputFocused()
{
var selected = EventSystem.current?.currentSelectedGameObject;
if (selected == null) return false;
return IsFocusedInputField(selected.GetComponent<TMP_InputField>())
|| IsFocusedInputField(selected.GetComponentInParent<TMP_InputField>())
|| IsFocusedInputField(selected.GetComponent<InputField>())
|| IsFocusedInputField(selected.GetComponentInParent<InputField>());
}
private static bool IsFocusedInputField(TMP_InputField inputField)
{
return inputField != null && inputField.isActiveAndEnabled && inputField.isFocused;
}
private static bool IsFocusedInputField(InputField inputField)
{
return inputField != null && inputField.isActiveAndEnabled && inputField.isFocused;
}
}
}

View File

@ -101,6 +101,8 @@ namespace Logic
return;
}
if (InputTextFocusUtility.IsTextInputFocused()) return;
//如果锁了input 但是DebugMode不会锁定input
if (inputLock &&!DebugCenter.Instance.DebugMode)
{

View File

@ -59,7 +59,7 @@ namespace Logic
private float[,] _heightMap;
private const int SmoothIterations = 3; //平滑次数
private const float NearbyEnemyCapitalRateForRealPlayer = 0.3f;
private const float NearbyEnemyCapitalRateForRealPlayer = 0.15f;
private const int NearbyEnemyCapitalDistance = 3;
private uint _width, _height;
private List<MapPosition> _tribes;

View File

@ -1391,9 +1391,42 @@ namespace Logic
if (player.CanConvertCultureToGold(mapData))
ret += GetPlayerCulturePointPerTurn(mapData, playerId);
ret += GetPlayerKingHeroCoinPerTurn(mapData, player);
return ret;
}
public int GetPlayerKingHeroCoinPerTurn(MapData mapData, PlayerData player)
{
if (mapData == null || player == null) return 0;
var kingLevel = player.PlayerHeroData.GetMaxHeroLevelByChessType(ChessType.King);
if (kingLevel == 0) return 0;
return GetPlayerKingCoinSourceCount(mapData, player) * (int)kingLevel;
}
public int GetPlayerKingCoinSourceCount(MapData mapData, PlayerData player)
{
if (mapData == null || player == null) return 0;
int count = 0;
if (mapData.GetCapitalCityDataByPlayerId(player.Id, out var capitalCity)
&& mapData.GetPlayerDataByCityId(capitalCity.Id, out var capitalOwner)
&& capitalOwner.Id == player.Id)
count++;
foreach (var otherPlayer in mapData.PlayerMap.PlayerDataList)
{
if (otherPlayer.Id == player.Id) continue;
if (!mapData.CityMap.GetCityById(otherPlayer.CradleCityId, out var city)) continue;
if (!mapData.GetPlayerDataByCityId(city.Id, out var owner)) continue;
if (owner.Id == player.Id) count++;
}
return count;
}
//进入回合结算 #ono #nextturn #start #startturn

View File

@ -39,5 +39,10 @@ namespace Logic.Skill
{
return true;
}
public override int GetHeroUpgradeRecoverAddition(MapData mapData, UnitData self)
{
return 5;
}
}
}

View File

@ -6,8 +6,6 @@
*/
using System;
using MemoryPack;
using RuntimeData;
@ -15,10 +13,6 @@ namespace Logic.Skill
{
public partial class FlandreBuffSkill : SkillBase
{
private static int _staticLevel = 0;
public override int Level => _staticLevel;
public FlandreBuffSkill()
{
IsLevelSkill = true;
@ -32,21 +26,7 @@ namespace Logic.Skill
{
var self = identifier as UnitData;
if (self == null) return;
_staticLevel = 0;
}
// MemoryPack 序列化之前的预处理
[MemoryPackOnSerializing]
public void OnBeforeMemoryPackSerialize()
{
_level = _staticLevel;
}
// MemoryPack 反序列化之后的后处理
[MemoryPackOnDeserialized]
public void OnAfterMemoryPackDeserialize()
{
_staticLevel = _level;
SyncFlandreBuffLevel(mapData, 0);
}
public override SkillType GetSkillType()
@ -56,27 +36,60 @@ namespace Logic.Skill
public override void AddLevel(MapData map, UnitData origin, UnitData self, int add)
{
foreach (var unit in map.UnitMap.UnitList)
{
if (unit.UnitFullType.GiantType == GiantType.EgyptianFlandre &&
!unit.GetSkill(SkillType.FLANDREBUFF, out _))
{
unit.AddSkill_Legacy(SkillType.FLANDREBUFF, map,false,0,true,0,false,SpecialAddSkillType.Normal,0);
}
}
_staticLevel += add;
if (_staticLevel > _levelLimit) _staticLevel = _levelLimit;
var nextLevel = GetSharedFlandreBuffLevel(map) + add;
if (nextLevel > _levelLimit) nextLevel = _levelLimit;
SyncFlandreBuffLevel(map, nextLevel);
if (!map.GetPlayerDataByUnitId(origin.Id, out _)) return;
origin.HeroTask(map)?.OnAddSkillLevels(map, GetSkillType(), (uint)add);
}
public override float GetAttackAdditionParam(MapData mapData, UnitData self, UnitData target = null)
{
return 0.5f * _staticLevel;
return 0.5f * Level;
}
public override bool ReservedOnTransform(UnitData self, UnitFullType fullType)
{
return true;
}
public override void OnAnyUnitCreate(MapData map, IdentifierBase identifier, UnitData newUnit)
{
if (newUnit?.UnitFullType.GiantType != GiantType.EgyptianFlandre) return;
var sharedLevel = GetSharedFlandreBuffLevel(map);
if (sharedLevel <= 0) return;
EnsureFlandreBuff(map, newUnit).SetLevel(sharedLevel);
}
private int GetSharedFlandreBuffLevel(MapData map)
{
var level = 0;
foreach (var unit in map.UnitMap.UnitList)
{
if (unit.UnitFullType.GiantType != GiantType.EgyptianFlandre) continue;
if (unit.GetSkill(SkillType.FLANDREBUFF, out var skill))
level = System.Math.Max(level, skill.Level);
}
return level;
}
private void SyncFlandreBuffLevel(MapData map, int level)
{
foreach (var unit in map.UnitMap.UnitList)
{
if (unit.UnitFullType.GiantType != GiantType.EgyptianFlandre) continue;
EnsureFlandreBuff(map, unit).SetLevel(level);
}
}
private SkillBase EnsureFlandreBuff(MapData map, UnitData unit)
{
if (unit.GetSkill(SkillType.FLANDREBUFF, out var skill)) return skill;
unit.AddSkill_Legacy(SkillType.FLANDREBUFF, map, false, 0, true, 0, false,
SpecialAddSkillType.Normal, 0);
unit.GetSkill(SkillType.FLANDREBUFF, out skill);
return skill;
}
}
}

View File

@ -0,0 +1,24 @@
/*
* @Author:
* @Description:
* @Date: 20260605
* @Modify:
*/
namespace Logic.Skill
{
public partial class KingCoinSkill : SkillBase
{
public KingCoinSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 2;
}
public override SkillType GetSkillType()
{
return SkillType.KingCoin;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a08552a793b041549805aca6e309bb64
timeCreated: 1780689600

View File

@ -55,7 +55,7 @@ namespace Logic.Skill
Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(tmpUnitFullType.UnitType, tmpUnitFullType.GiantType, tmpUnitFullType.UnitLevel,
out var unitInfo))
{
player.giantPenalty[(uint)unitInfo.ChessType] = 4;
player.giantPenalty[(uint)unitInfo.ChessType] = (int)tmpUnitFullType.UnitLevel + 1;
}
}
}

View File

@ -35,6 +35,12 @@ namespace Logic.Skill
FullType.GiantType = GiantType.FrenchMokou;
FullType.UnitLevel = self.UnitFullType.UnitLevel;
}
public override void OnSelfCreated(MapData map, UnitData self)
{
if (self == null) return;
SetTurnsLimit(self.UnitLevel + 1);
}
public override void OnFinished(IdentifierBase identifier, MapData mapData)
{

View File

@ -0,0 +1,59 @@
/*
* @Author:
* @Description:
* @Date: 20260605
* @Modify:
*/
using RuntimeData;
namespace Logic.Skill
{
public partial class QueenTerritoryMoveSkill : SkillBase
{
public QueenTerritoryMoveSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 2;
}
public override SkillType GetSkillType()
{
return SkillType.QueenTerritoryMove;
}
public override int GetExtraMoveRange(MapData mapData, UnitData self)
{
if (mapData == null || self == null) return 0;
if (!mapData.GetPlayerIdByUnitId(self.Id, out var ownerId)) return 0;
if (!mapData.GetGridDataByUnitId(self.Id, out var selfGrid)) return 0;
if (IsFriendlyTerritory(mapData, selfGrid, ownerId)) return 1;
var aroundBuf = RentAroundBuf();
mapData.GridMap.GetAroundGridData(1, 1, selfGrid, aroundBuf);
foreach (var grid in aroundBuf)
{
if (!IsFriendlyTerritory(mapData, grid, ownerId)) continue;
ReturnAroundBuf();
return 1;
}
ReturnAroundBuf();
return 0;
}
private static bool IsFriendlyTerritory(MapData mapData, GridData grid, uint ownerId)
{
return grid != null
&& mapData.GetPlayerDataByTerritoryGridId(grid.Id, out var territoryPlayer)
&& mapData.SameUnion(ownerId, territoryPlayer.Id);
}
public override bool ReservedOnTransform(UnitData self, UnitFullType fullType)
{
return true;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6a9d94674a084c88a0792e9ef68c4f28
timeCreated: 1780689600

View File

@ -0,0 +1,27 @@
using RuntimeData;
namespace Logic.Skill
{
public partial class SakuyaEnhancedSkill : SkillBase
{
public SakuyaEnhancedSkill()
{
IsLevelSkill = true;
IsPermanent = false;
TurnsLimit = 0;
_levelLimit = 0;
_autoDisappear = true;
_skillPriority = SkillPriority.Origin;
}
public override SkillType GetSkillType()
{
return SkillType.SakuyaEnhanced;
}
public override void OnSkillAdd(MapData mapData, uint originId)
{
OriginId = originId;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3b98a20d6b104c658c4dbf09b3ace2e1
timeCreated: 1780656000

View File

@ -6,11 +6,9 @@
*/
using System;
using System.Collections.Generic;
using Logic.Pool;
using MemoryPack;
using RuntimeData;
using System.Collections.Generic;
using UnityEngine;
@ -18,9 +16,6 @@ namespace Logic.Skill
{
public partial class SakuyaFlyProSkill : SkillBase
{
// 本回合添加过 GetActionPoint(ActionPointType.Attack) 的英雄列表
private static HashSet<uint> _heroSet;
public SakuyaFlyProSkill()
{
IsPermanent = true;
@ -30,14 +25,12 @@ namespace Logic.Skill
_levelLimit = int.MaxValue;
// 咲夜飞行需要在0层时继续保留用于每回合重新从0开始累计疲劳。
_autoDisappear = false;
_heroSet = new HashSet<uint>();
}
public override void OnTurnStart(IdentifierBase identifier, MapData mapData)
{
// 持有者回合开始时重置为0层_autoDisappear=false保证0层不会被回收。
_level = 0;
_heroSet.Clear();
}
public override SkillType GetSkillType()
@ -75,9 +68,10 @@ namespace Logic.Skill
if (!selfUnitList.Contains(unit)) continue;
unit.AddSkill_Legacy(SkillType.SAKUYAGUARD, mapData,false,1,false,-1,false,SpecialAddSkillType.Force,0);
isExcute = true;
if (!_heroSet.Contains(unit.Id))
if (!unit.GetSkill(SkillType.SakuyaEnhanced, out _))
{
_heroSet.Add(unit.Id);
unit.AddSkill_Legacy(SkillType.SakuyaEnhanced, mapData, false, 0, false, -1, false,
SpecialAddSkillType.Normal, self.Id);
unit.AddActionPoint(ActionPointType.Attack);
}
}

View File

@ -9,6 +9,10 @@
using RuntimeData;
using System;
using MemoryPack;
using TH1_Anim.Fragments;
using TH1_Core.Managers;
using TH1_Logic.Core;
using TH1Renderer;
namespace Logic.Skill
@ -31,5 +35,78 @@ namespace Logic.Skill
{
return true;
}
public override void AfterActiveAttackOther(MapData mapData, AttackInfo attackInfo)
{
if (mapData == null || attackInfo?.DamageOrigin == null || attackInfo.DamageOriginGrid == null) return;
if (!mapData.GetPlayerIdByUnitId(attackInfo.DamageOrigin.Id, out var selfPlayerId)) return;
if (!IsEnemyTerritoryOrAdjacent(mapData, attackInfo.DamageOriginGrid, selfPlayerId)) return;
attackInfo.DamageOrigin.AddSkill_Legacy(
SkillType.MOVERANGEUP,
mapData,
false,
0,
false,
-1,
false,
SpecialAddSkillType.AddTurnLimit,
attackInfo.DamageOrigin.Id);
RefreshOriginVisualAfterAttack(mapData, attackInfo.DamageOrigin);
}
private static void RefreshOriginVisualAfterAttack(MapData mapData, UnitData origin)
{
if (mapData != Main.MapData) return;
var scope = PresentationManager.CurrentScope;
if (scope != null)
{
if (MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(origin.Id, out var unitRenderer))
{
scope.Add(new FragmentStep
{
Phase = AnimPhase.AttackImpact + 50,
Duration = 0.1f,
Execute = () => { unitRenderer.InstantUpdateUnit(false); }
});
}
}
else
{
if (MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(origin.Id, out var unitRenderer))
{
unitRenderer.RenderUpdateUnitImage();
}
}
}
private static bool IsEnemyTerritoryOrAdjacent(MapData mapData, GridData originGrid, uint selfPlayerId)
{
if (IsEnemyTerritory(mapData, originGrid, selfPlayerId)) return true;
var aroundBuf = RentAroundBuf();
mapData.GridMap.GetAroundGridData(1, 1, originGrid, aroundBuf);
foreach (var grid in aroundBuf)
{
if (grid.Id == originGrid.Id) continue;
if (!IsEnemyTerritory(mapData, grid, selfPlayerId)) continue;
ReturnAroundBuf();
return true;
}
ReturnAroundBuf();
return false;
}
private static bool IsEnemyTerritory(MapData mapData, GridData grid, uint selfPlayerId)
{
return grid != null
&& mapData.GetPlayerDataByTerritoryGridId(grid.Id, out var territoryPlayer)
&& !mapData.SameUnion(selfPlayerId, territoryPlayer.Id);
}
}
}
}

View File

@ -48,7 +48,7 @@ namespace Logic.Skill
fullType.UnitType = UnitType.BonePile;
if (self.GetAttackRange(map) > 1) return false;
if (self.GetAllAttackValue(map, target) <= target.GetAllDefenseValue(map, self)) return false;
if (self.GetAllAttackValue(map, target) <= target.GetAllDefenseValueIgnoringPositiveBonus(map, self)) return false;
var player = self.Player(map);
if (player == null) return false;
var targetPlayer = target.Player(map);

View File

@ -1,2 +1,11 @@
fileFormatVersion: 2
guid: 11ca7c4e0a9a4853aaf8f60a6de0c08e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
// Auto-generated KingCoinSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class KingCoinSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c8717d469c47e1a42949d04b1f557fd3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
// Auto-generated QueenTerritoryMoveSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class QueenTerritoryMoveSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 940da7ef260d47448a3b90bdbf45b8a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
// Auto-generated SakuyaEnhancedSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class SakuyaEnhancedSkill
{
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 92bb85597c554bd7a2d36318746d383f

View File

@ -262,6 +262,9 @@ namespace Logic.Skill
[MemoryPackUnion(254, typeof(CityStolenSkill))]
[MemoryPackUnion(255, typeof(ShenlanSkill))]
[MemoryPackUnion(256, typeof(AssaultFortressSkill))]
[MemoryPackUnion(257, typeof(QueenTerritoryMoveSkill))]
[MemoryPackUnion(258, typeof(KingCoinSkill))]
[MemoryPackUnion(259, typeof(SakuyaEnhancedSkill))]
public abstract partial class SkillBase
{
}

View File

@ -306,6 +306,9 @@ public enum SkillType
// 深蓝:纯视觉技能,让单位贴图按时间循环变色,没有任何数值/逻辑效果
Shenlan = 266,
AssaultFortress = 267,
QueenTerritoryMove = 268,
KingCoin = 269,
SakuyaEnhanced = 270,
//补充之前的bug问题
Max = 999,
}
@ -1374,6 +1377,11 @@ namespace Logic.Skill
{
return false;
}
public virtual int GetHeroUpgradeRecoverAddition(MapData mapData, UnitData self)
{
return 0;
}
#endregion
#region [----------------------------------------]

View File

@ -794,22 +794,12 @@ namespace Logic
bool notifymoment = false;
//如果是伟人死亡对应的player受到惩罚 penalty=4
if (unit.UnitType == UnitType.Giant
&& map.GetPlayerDataByUnitId(unit.Id, out var player) &&
Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unit.UnitType, unit.GiantType, unit.UnitLevel,
out var info))
player.giantPenalty[(uint)info.ChessType] = 4;
// 如果是伟人死亡对应的player受到复活冷却冷却回合数等于死亡时等级+1
SetHeroRevivePenalty(map, unit, unit.UnitType, unit.GiantType, unit.UnitLevel);
//如果是英雄战船死亡对应的player受到惩罚 penalty=4
if (unit.UnitType == UnitType.GiantJuggernaut && unit.CarryUnitType == UnitType.Giant
&& map.GetPlayerDataByUnitId(unit.Id, out var player2) &&
Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(
unit.CarryUnitType, unit.CarryGiantType,
unit.CarryUnitLevel,
out var info2))
player2.giantPenalty[(uint)info2.ChessType] = 4;
// 如果是英雄战船死亡对应的player受到携带英雄等级+1的复活冷却
SetHeroRevivePenalty(map, unit, unit.CarryUnitType, unit.CarryGiantType, unit.CarryUnitLevel);
if (map == Main.MapData && unit.Player(map) == map.PlayerMap.SelfPlayerData)
@ -860,14 +850,18 @@ namespace Logic
{
unit.Health = 0;
//如果是伟人死亡对应的player受到惩罚 penalty=4
if (unit.UnitType == UnitType.Giant
&& map.GetPlayerDataByUnitId(unit.Id, out var player) &&
Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unit.UnitType, unit.GiantType, unit.UnitLevel,
out var info))
player.giantPenalty[(uint)info.ChessType] = 4;
// 如果是伟人死亡对应的player受到复活冷却冷却回合数等于死亡时等级+1
SetHeroRevivePenalty(map, unit, unit.UnitType, unit.GiantType, unit.UnitLevel);
map.SetUnitDataDie(unit);
}
private static void SetHeroRevivePenalty(MapData map, UnitData unit, UnitType unitType, GiantType giantType, uint unitLevel)
{
if (unitType != UnitType.Giant) return;
if (!map.GetPlayerDataByUnitId(unit.Id, out var player)) return;
if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unitType, giantType, unitLevel, out var info)) return;
player.giantPenalty[(uint)info.ChessType] = (int)unitLevel + 1;
}
public void DebugOutputMoveInfo(MapData mapData)
{

View File

@ -67,7 +67,6 @@ namespace TH1_Renderer
{
BubbleType.HeroUpgrade => OnClickHeroUpgrade,
BubbleType.Upgrade => OnClickUpgrade,
BubbleType.CultureUnitUpgrade => OnClickCultureUnitUpgrade,
BubbleType.Capture => OnClickCapture,
BubbleType.Examine => OnClickExamine,
BubbleType.Gather => OnClickGather,
@ -93,19 +92,6 @@ namespace TH1_Renderer
OnClickCommon();
}
private void OnClickCultureUnitUpgrade()
{
var upgradeAction = ActionLogicFactory.GetActionLogic(new CommonActionId()
{ ActionType = CommonActionType.UnitAction, UnitActionType = UnitActionType.CultureUnitUpgrade });
var actionParam = new CommonActionParams(mapData: Main.MapData, unitData: _bubbleData.Unit,
playerData: Main.MapData.PlayerMap.SelfPlayerData);
if(upgradeAction.CheckCan(actionParam))
upgradeAction.CompleteExecute(actionParam);
OnClickCommon();
}
private void OnClickHeroUpgrade()
{
var heroUpgradeAction = ActionLogicFactory.GetActionLogic(new CommonActionId()

View File

@ -26,7 +26,6 @@ namespace TH1_Renderer
Capture,
HeroUpgrade,
Upgrade,
CultureUnitUpgrade,
Examine,
HeroSelect
}
@ -140,8 +139,6 @@ namespace TH1_Renderer
//准备升级行为的参数
var upgradeAction = ActionLogicFactory.GetActionLogic(new CommonActionId()
{ ActionType = CommonActionType.UnitAction, UnitActionType = UnitActionType.Upgrade });
var cultureUnitUpgradeAction = ActionLogicFactory.GetActionLogic(new CommonActionId()
{ ActionType = CommonActionType.UnitAction, UnitActionType = UnitActionType.CultureUnitUpgrade });
var heroUpgradeAction = ActionLogicFactory.GetActionLogic(new CommonActionId()
{ ActionType = CommonActionType.UnitAction, UnitActionType = UnitActionType.HeroUpgrade });
var captureAction = ActionLogicFactory.GetActionLogic(new CommonActionId()
@ -157,14 +154,12 @@ namespace TH1_Renderer
bool upgrade = upgradeAction.CheckCan(actionParam);
bool cultureUnitUpgrade = cultureUnitUpgradeAction.CheckCan(actionParam);
bool heroUpgrade = heroUpgradeAction.CheckCan(actionParam);
bool capture = captureAction.CheckCan(actionParam);
bool treasure = treasureAction.CheckCan(actionParam);
bool starfish = starfishAction.CheckCan(actionParam);
bool showBubble = upgrade || cultureUnitUpgrade || heroUpgrade || capture || treasure || starfish;
bool showBubble = upgrade || heroUpgrade || capture || treasure || starfish;
BubbleType bubbleType = BubbleType.Upgrade;
if(cultureUnitUpgrade)bubbleType = BubbleType.CultureUnitUpgrade;
if(heroUpgrade)bubbleType = BubbleType.HeroUpgrade;
if(capture)bubbleType = BubbleType.Capture;
if(treasure)bubbleType = BubbleType.Examine;

View File

@ -29,6 +29,16 @@ namespace TH1_UI.Controller.Interaction
public UIInteractionCityLevelupController() { }
public override bool OpenWithParam(object param)
{
_openParameter = param;
if (WindowScript != null)
{
ApplyOpenParameterToView(param);
}
return Open();
}
protected override void RegisterEventCallback()
{
@ -58,10 +68,7 @@ namespace TH1_UI.Controller.Interaction
// 使用接收到的数据设置UI内容
if (WindowScript != null)
{
PrepareActionChoice((uint)evt.CityId, (uint)evt.CityLevel);
//Debug.Log(evt.CityId + " - " + (uint)evt.CityLevel);
//Param1 = cid Param2 = cityLv
WindowScript.SetContent(evt.CityId, _actionA,_actionB,_paramA,_paramB,OnChoice);
ApplyOpenParameterToView(evt);
}
}
else
@ -81,9 +88,17 @@ namespace TH1_UI.Controller.Interaction
Close();
}
private void PrepareActionChoice(uint cid,uint cityLevel)
private void ApplyOpenParameterToView(object param)
{
if (!Main.MapData.CityMap.GetCityById(cid, out var cityData)) return;
if (param is not ShowUIInteractionCityUpgrade evt) return;
if (!PrepareActionChoice((uint)evt.CityId, (uint)evt.CityLevel)) return;
//Param1 = cid Param2 = cityLv
WindowScript.SetContent(evt.CityId, _actionA,_actionB,_paramA,_paramB,OnChoice);
}
private bool PrepareActionChoice(uint cid,uint cityLevel)
{
if (!Main.MapData.CityMap.GetCityById(cid, out var cityData)) return false;
_paramA = new CommonActionParams(Main.MapData, cityData: cityData,playerData : cityData.Player(Main.MapData));
_paramB = new CommonActionParams(Main.MapData, cityData: cityData,playerData : cityData.Player(Main.MapData));
if (cityLevel == 2)
@ -141,6 +156,8 @@ namespace TH1_UI.Controller.Interaction
CityLevelUpActionType = CityLevelUpActionType.BigGuy
};
}
return true;
}
@ -157,4 +174,4 @@ namespace TH1_UI.Controller.Interaction
return WindowScript.GetPos(actionType, out pos);
}
}
}
}

View File

@ -42,7 +42,6 @@ namespace TH1_UI.View.Info
public TextMeshProUGUI CostText;
public Sprite CoinCostSprite;
public Sprite CultureCostSprite;
public Sprite HeroReviveCultureCostSprite;
public GameObject TimeBar;
public TextMeshProUGUI TimeText;
public Color TextBlue;
@ -105,11 +104,14 @@ namespace TH1_UI.View.Info
//Step #2.5 预计算成本和显示状态
var action = ActionLogicFactory.GetActionLogic(actionId);
int cost = action.GetCost(param);
bool isBigGuyTrain = actionId.ActionType == CommonActionType.TrainUnit
&& UnitData.IsBigGuyType(actionId.UnitType);
bool isCultureTrain = actionId.ActionType == CommonActionType.TrainUnit
&& (UnitData.IsBigGuyType(actionId.UnitType) || actionId.UnitType == UnitType.Giant);
bool isCultureCost = isCultureTrain
|| (actionId.ActionType == CommonActionType.UnitAction
&& actionId.UnitActionType == UnitActionType.CultureUnitUpgrade);
CostText.text = cost.ToString();
CostText.color = TextBlue;
if (isBigGuyTrain)
if (isCultureCost)
{
// BigGuy用文化值判断
if (CostIcon != null && CultureCostSprite != null)
@ -132,6 +134,14 @@ namespace TH1_UI.View.Info
ClickButton.onClick.RemoveAllListeners();
Title.color = TextBlue;
TimeBar.SetActive(false);
if (cantType == ShowType.Cold)
{
if (Table.Instance.UnitTypeDataAssets.GetGiantTypeChessType(actionId.GiantType, out var coldChessType))
{
TimeBar.SetActive(true);
TimeText.text = player.giantPenalty[(int)coldChessType].ToString();
}
}
//如果目前无法执行
if (!action.CheckCan(param))
@ -169,17 +179,14 @@ namespace TH1_UI.View.Info
BG.sprite = circleGround ? GroundGrayBG : GrayBG;
locked = true;
Title.color = TextGrey;
TimeBar.SetActive(true);
if (Table.Instance.UnitTypeDataAssets.GetGiantTypeChessType(actionId.GiantType, out var chessType))
TimeText.text = player.giantPenalty[(int)chessType].ToString();
if (TryGetHeroReviveCultureCost(actionId, player, out var heroReviveCost))
if (cost > 0)
{
CostBar.SetActive(true);
CostText.text = heroReviveCost.ToString();
CostText.color = player.PlayerCultureInfo.PlayerCulture < heroReviveCost ? TextRed : TextBlue;
if (CostIcon != null)
CostIcon.sprite = HeroReviveCultureCostSprite != null ? HeroReviveCultureCostSprite : CultureCostSprite;
CostText.text = cost.ToString();
CostText.color = player.PlayerCultureInfo.PlayerCulture < cost ? TextRed : TextBlue;
if (CostIcon != null && CultureCostSprite != null)
CostIcon.sprite = CultureCostSprite;
}
else
{
@ -188,7 +195,7 @@ namespace TH1_UI.View.Info
}
//否则如果是因为钱/文化值不够
else if (cantType == ShowType.Cost
|| (isBigGuyTrain
|| (isCultureCost
? player.PlayerCultureInfo.PlayerCulture < cost
: player.PlayerCoin < cost))
{
@ -235,26 +242,5 @@ namespace TH1_UI.View.Info
{
}
private bool TryGetHeroReviveCultureCost(CommonActionId actionId, PlayerData player, out int cost)
{
cost = 0;
if (actionId == null || player == null || player.PlayerHeroData == null) return false;
if (actionId.ActionType != CommonActionType.TrainUnit || actionId.UnitType != UnitType.Giant) return false;
if (!Table.Instance.UnitTypeDataAssets.GetGiantTypeChessType(actionId.GiantType, out var chessType)) return false;
if (player.giantPenalty == null) return false;
int chessIndex = (int)chessType;
if (chessIndex < 0 || chessIndex >= player.giantPenalty.Length) return false;
int coldTime = player.giantPenalty[chessIndex];
if (coldTime <= 0) return false;
uint heroLevel = player.PlayerHeroData.GetHeroLevel(actionId.GiantType);
long rawCost = (long)heroLevel * coldTime * 5;
cost = rawCost > int.MaxValue ? int.MaxValue : (int)rawCost;
return cost > 0;
}
}
}

View File

@ -12,12 +12,23 @@ namespace TH1_UI.View.Info
public Color CantBuyTextColor;
public Button BuyButton;
public TextMeshProUGUI Cost;
public Image CostIcon;
public Sprite CultureCostSprite;
public Sprite CoinCostSprite;
public Color CultureCostColor = new Color(0.7019608f, 0.2627451f, 0.7607843f, 1f);
public Color CoinCostColor = Color.white;
public void UpdateVisual(int cost, int playerCulture)
public void UpdateVisual(int cost, int playerResource, CultureCardCostType costType = CultureCardCostType.Culture)
{
bool canBuy = playerCulture >= cost;
bool canBuy = playerResource >= cost;
if (BuyButton != null)
BuyButton.image.sprite = canBuy ? NormalButton : CantBuyButton;
if (CostIcon != null)
{
var costSprite = costType == CultureCardCostType.Coin ? CoinCostSprite : CultureCostSprite;
if (costSprite != null) CostIcon.sprite = costSprite;
CostIcon.color = costType == CultureCardCostType.Coin ? CoinCostColor : CultureCostColor;
}
if (Cost != null)
{
Cost.text = cost.ToString();

View File

@ -68,8 +68,6 @@ namespace TH1_UI.View.Info
action.CompleteExecute(param);
EventManager.Publish(new UpdateUIInfoHeroCultureCards());
EventManager.Publish(new UpdateUITopTopBar { UpdateType = UpdateTopBarType.UpdateCulture });
EventManager.Publish(new UpdateUITopTopBar { UpdateType = UpdateTopBarType.UpdateCoinPerTurn });
}
public void UpdateInfo(PlayerData player)
@ -84,7 +82,7 @@ namespace TH1_UI.View.Info
{
BuyButtonMono.gameObject.SetActive(!alreadyOwned);
if (!alreadyOwned)
BuyButtonMono.UpdateVisual(_cardInfo.Cost, player.PlayerCultureInfo.PlayerCulture);
BuyButtonMono.UpdateVisual(_cardInfo.Cost, _cardInfo.GetPlayerCostResource(player), _cardInfo.BuyCostType);
}
// 前置卡检查

View File

@ -140,7 +140,7 @@ namespace TH1_UI.View.Info
}
BuyButtonMono.gameObject.SetActive(true);
BuyButtonMono.UpdateVisual(cardInfo.Cost, player.PlayerCultureInfo.PlayerCulture);
BuyButtonMono.UpdateVisual(cardInfo.Cost, cardInfo.GetPlayerCostResource(player), cardInfo.BuyCostType);
if (BuyButtonMono.BuyButton == null) return;
BuyButtonMono.BuyButton.onClick.RemoveAllListeners();
@ -157,11 +157,9 @@ namespace TH1_UI.View.Info
var param = new CommonActionParams(Main.MapData, playerData: self,
mainObjectType: MainObjectType.Player);
param.RefreshParams();
if (!action.CheckCan(param)) return; // 文化不够或其他原因不可购买,静默
if (!action.CheckCan(param)) return; // 金币不够或其他原因不可购买,静默
action.CompleteExecute(param);
EventManager.Publish(new UpdateUIInfoHeroCultureCards());
EventManager.Publish(new UpdateUITopTopBar { UpdateType = UpdateTopBarType.UpdateCulture });
EventManager.Publish(new UpdateUITopTopBar { UpdateType = UpdateTopBarType.UpdateCoinPerTurn });
});
}
@ -296,4 +294,4 @@ namespace TH1_UI.View.Info
}
}
}
}

View File

@ -49,6 +49,9 @@ namespace TH1_UI.View.Notify
case UINotifyCommonType.ExamineCityExp:
MultilingualManager.Instance.SetUIText(content,Table.Instance.TextDataAssets.NotifyUIExamineCityExpHint);
break;
case UINotifyCommonType.ExamineCulture:
MultilingualManager.Instance.SetUIText(content,Table.Instance.TextDataAssets.NotifyUIExamineCultureHint);
break;
case UINotifyCommonType.TurnHint:
MultilingualManager.Instance.SetUIText(content,Table.Instance.TextDataAssets.NotifyUITurnHint,new List<string>(){(Main.MapData.CurPlayer.Turn + 1).ToString()});
AudioManager.Instance.PlayAudio("SFX/start");

View File

@ -8,6 +8,13 @@ namespace TH1_UI.View.Top
{
public class UITopTopBarView : Base.View
{
private const string TopBarAnimTimerMessage = "UITopTopBarView TopBarAnim";
private const float CoinSelfCheckInterval = 0.5f;
private int _topBarAnimVersion;
private bool _coinAnimActive;
private float _coinAnimEndTime;
private float _nextCoinSelfCheckTime;
//public Button closeButton;
public ViDelegateAssisstant.Dele OnBtnCloseClick;
@ -65,6 +72,7 @@ namespace TH1_UI.View.Top
//注意 开局首次调用本函数所有city都是空percoin和pertech perculture都是0需要controller里的每个update函数来刷新的
if (Main.MapData?.PlayerMap?.SelfPlayerData == null) return;
CancelTopBarAnim();
// PerfectTime仅在Perfect模式下显示
if (PerfectTime != null)
@ -128,6 +136,13 @@ namespace TH1_UI.View.Top
{
//AudioManager.Instance.StopMusic();
}
private void Update()
{
if (Time.time < _nextCoinSelfCheckTime) return;
_nextCoinSelfCheckTime = Time.time + CoinSelfCheckInterval;
SelfCheckCoinText();
}
public void UpdateTurn()
@ -138,7 +153,9 @@ namespace TH1_UI.View.Top
public void UpdateCoin()
{
if (Main.MapData?.PlayerMap?.SelfPlayerData == null) return;
if (!int.TryParse(Coin.text, out var old)) return;
CancelTopBarAnim();
if (!int.TryParse(Coin.text, out var old))
old = Main.MapData.PlayerMap.SelfPlayerData.PlayerCoin;
float delay = Table.Instance.AnimDataAssets.ProjectileCoinMoveTime;
if (old > Main.MapData.PlayerMap.SelfPlayerData.PlayerCoin) delay = 0f;
TopBarAnim(Coin,old,Main.MapData.PlayerMap.SelfPlayerData.PlayerCoin,delay,TopBarPanelType.Coin);
@ -209,6 +226,7 @@ namespace TH1_UI.View.Top
private void TopBarAnim(TextMeshProUGUI targetText, int oldValue,int targetValue,float startDelay,TopBarPanelType panelType)
{
var animVersion = _topBarAnimVersion;
int maxTime = 100;
int now = oldValue;
int time = Mathf.Abs(targetValue - oldValue);
@ -219,7 +237,16 @@ namespace TH1_UI.View.Top
time = maxTime;
step = (targetValue - oldValue) / time;
}
if (time == 0) return;
if (time == 0)
{
targetText.text = targetValue.ToString();
return;
}
if (panelType == TopBarPanelType.Coin)
{
_coinAnimActive = true;
_coinAnimEndTime = Time.time + Mathf.Max(0f, startDelay) + (time - 1) * 0.03f + 0.1f;
}
for (int s = 0; s < time; s++)
{
@ -241,16 +268,42 @@ namespace TH1_UI.View.Top
var tmps = Mathf.Min(s,200);
Timer.Instance.TimerRegister(this, () =>
{
if (animVersion != _topBarAnimVersion) return;
text.text = tmp.ToString();
if (finalCheck)
{
if(panel == TopBarPanelType.Coin && Main.MapData != null)
{
text.text = Main.MapData.PlayerMap.SelfPlayerData.PlayerCoin.ToString();
_coinAnimActive = false;
}
}
},tmps * 0.03f + startDelay , "UITopTopBarView TopBarAnim");
},tmps * 0.03f + startDelay , TopBarAnimTimerMessage);
}
}
private void CancelTopBarAnim()
{
_topBarAnimVersion++;
_coinAnimActive = false;
Timer.Instance?.CancelByMessage(TopBarAnimTimerMessage);
}
private void SelfCheckCoinText()
{
if (Main.MapData?.PlayerMap?.SelfPlayerData == null || Coin == null) return;
if (_coinAnimActive)
{
if (Time.time <= _coinAnimEndTime) return;
CancelTopBarAnim();
}
var realCoin = Main.MapData.PlayerMap.SelfPlayerData.PlayerCoin;
if (int.TryParse(Coin.text, out var showCoin) && showCoin == realCoin) return;
CancelTopBarAnim();
Coin.text = realCoin.ToString();
}
public void UpdateCoinPerTurn()
{

Some files were not shown because too many files have changed in this diff Show More