zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0

杂货店

develope
Cal 2021-05-15 14:29:48 +08:00
parent 6cb2165ccd
commit 67909209d6
66 changed files with 921 additions and 98 deletions

View File

@ -7,10 +7,10 @@
<remark page="2" value="位置"/>
</controller>
<displayList>
<component id="n0_fyvb" name="frame" src="fyvbr" fileName="FrameBag.xml" xy="0,0" group="n18_fyvb">
<component id="n0_fyvb" name="frame" src="fyvbr" fileName="FrameBag.xml" xy="0,0">
<Label title="星魂背包"/>
</component>
<list id="n1_fyvb" name="slotList" xy="90,125" size="416,324" group="n18_fyvb" layout="flow_hz" selectionMode="multipleSingleClick" overflow="scroll" scrollBarFlags="1024" clipSoftness="0,50" lineGap="5" colGap="5" defaultItem="ui://71ktouo7m7kbtne" autoClearItems="true">
<list id="n1_fyvb" name="slotList" xy="90,125" size="416,324" layout="flow_hz" selectionMode="multipleSingleClick" overflow="scroll" scrollBarFlags="1024" clipSoftness="0,50" lineGap="5" colGap="5" defaultItem="ui://71ktouo7m7kbtne" autoClearItems="true">
<item/>
<item/>
<item/>
@ -60,8 +60,8 @@
<item/>
<item/>
</list>
<text id="n19_m7kb" name="txtCapity" xy="99,463" size="130,26" group="n18_fyvb" fontSize="18" color="#ffcc00" strokeColor="#000000" text="容量100/1000"/>
<group id="n18_fyvb" name="gorup" xy="0,0" size="594,640" advanced="true"/>
<text id="n19_m7kb" name="txtCapity" xy="99,463" size="130,26" fontSize="18" color="#ffcc00" strokeColor="#000000" text="容量100/1000"/>
<text id="n38_q52a" name="txtSelection" xy="96,549" size="108,24" fontSize="16" color="#ffcc00" strokeColor="#000000" text="已选择0个星魂"/>
<component id="n21_jxet" name="btnType" src="czagl" fileName="ButtonSingle.xml" pkg="kqsmrpxl" xy="369,467" size="19,19" group="n24_jxet" aspect="true">
<Button controller="sortType" page="1"/>
</component>
@ -112,9 +112,9 @@
<item title="鞋"/>
</ComboBox>
</component>
<component id="n40_q52a" name="btnReslove" src="y69ujo" fileName="ButtonOnlyText.xml" pkg="kqsmrpxl" xy="95,576" size="72,25">
<Button title="星魂分解"/>
</component>
</displayList>
<transition name="Effect">
<item time="0" type="Alpha" target="n18_fyvb" tween="true" startValue="0" endValue="1" duration="18"/>
<item time="0" type="XY" target="n18_fyvb" tween="true" startValue="-,-640" endValue="-,0" duration="18"/>
</transition>
<transition name="Effect"/>
</component>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="85,33" pivot="0.5,0.5" extention="Button">
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
<displayList>
<image id="n0_cm4u" name="n0" src="cm4u7" fileName="Assets/Market_zhuangbei.png" xy="0,0" size="85,33">
<relation target="" sidePair="width-width,height-height"/>
</image>
<loader id="n1_fc29" name="icon" xy="0,0" size="32,32"/>
<text id="n2_fc29" name="title" xy="34,7" size="36,22" fontSize="14" color="#e3c07f" align="center" vAlign="middle" letterSpacing="4" strokeColor="#7a4d00" strokeSize="2" shadowColor="#000000" shadowOffset="1,1" text="装备">
<relation target="" sidePair="center-center,middle-middle"/>
</text>
</displayList>
<Button mode="Radio" downEffect="dark" downEffectValue=".8"/>
</component>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="500,400">
<displayList>
<component id="n0_rttn" name="frame" src="cm4u8" fileName="FrameShopUI.xml" xy="0,0">
<Label title="杂货店"/>
</component>
<list id="n3_rttn" name="pageList" xy="38,56" size="425,40" layout="row" overflow="hidden" defaultItem="ui://9r7gspayfc29h">
<item title="星币"/>
<item title="荣誉"/>
<item title="竞技"/>
<item title="家族"/>
</list>
<list id="n4_rttn" name="slotList" xy="40,96" size="424,265" layout="flow_hz" overflow="scroll" lineGap="1" colGap="1" defaultItem="ui://kqsmrpxls8hrkf" autoClearItems="true">
<relation target="n3_rttn" sidePair="center-center,top-bottom"/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -17,6 +17,8 @@
<component id="cm4ud" name="ButtonMaterial.xml" path="/"/>
<component id="cm4ue" name="ButtonEquip.xml" path="/"/>
<component id="rttnf" name="ShopUI.xml" path="/" exported="true"/>
<component id="fc29g" name="MultiShopUI.xml" path="/" exported="true"/>
<component id="fc29h" name="ButtonShop.xml" path="/"/>
</resources>
<publish name=""/>
</packageDescription>

View File

@ -3038,3 +3038,18 @@ message M2C_GetUIDByName // IActorLocationResponse
string Message = 92;
repeated KV_string_int32 map=1;
}
//ResponseType M2C_ResolveStarSoul
message C2M_ResolveStarSoul // IActorLocationRequest
{
int32 RpcId = 90;
int64 ActorId = 93;
repeated int64 ids=1;
}
message M2C_ResolveStarSoul // IActorLocationResponse
{
int32 RpcId = 90;
int32 Error = 91;
string Message = 92;
repeated RewardItem itenList=1;
}

View File

@ -0,0 +1,20 @@
using System;
namespace ET
{
[ActorMessageHandler]
public class C2M_ResolveStarSoulHandler : AMActorLocationRpcHandler<Unit, C2M_ResolveStarSoul, M2C_ResolveStarSoul>
{
protected override async ETTask Run(Unit unit, C2M_ResolveStarSoul request, M2C_ResolveStarSoul response, Action reply)
{
var bag = unit.GetComponent<StarSoulBag>();
string retStr = bag.Resolve(request.ids,response.itenList);
if (retStr !=null)
{
response.Message = retStr;
}
reply();
await ETTask.CompletedTask;
}
}
}

View File

@ -26,7 +26,7 @@ namespace ET
BagHelper.AddItem(unit, itemId, itemCount, isLock, getSource: getSource);
TaskHelper.UpdateTask(unit, itemId).Coroutine();
list?.Add(new RewardItem() { Id = itemId, Count = 1, ItemType = BagHelper.GetItemType(itemId) });
list?.Add(new RewardItem() { Id = itemId, Count = itemCount, ItemType = BagHelper.GetItemType(itemId) });
rewordMap?.Add(unit.Id, (itemId, itemCount));
try
{

View File

@ -619,7 +619,8 @@ namespace ET
else if (cmdType.Equals("winBattle", StringComparison.OrdinalIgnoreCase))
{
if (!unitInLib) return "不在线";
// BattleBase battle = BattleMgrCompnent.Instance.GetBattle(unitInLib);
CopyBattle battle = BattleMgrCompnent.Instance.GetBattle(unitInLib);
battle.Victory().Coroutine();
return "成功";
}
else if (cmdType.Equals("queryAccount", StringComparison.OrdinalIgnoreCase))

View File

@ -20,7 +20,7 @@ namespace ET
public override void Deserialize(StarSoulBag self)
{
self.getAttributeFunc = self.GetAttribute;
if(self.usedStarSoulDic.Count==0)
if (self.usedStarSoulDic.Count == 0)
self.InitData();
}
}
@ -61,7 +61,7 @@ namespace ET
long starSoulId = kv.Value;
if (starSoulId != 0)
{
if(starSoulId==0)
if (starSoulId == 0)
return bound;
StarSoulBag starSoulBag = self;
StarSoulItem item = starSoulBag.Get(starSoulId);
@ -69,17 +69,17 @@ namespace ET
{
return bound;
}
StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.mainId);
if (soulAttributeConfig.Key == (int) attributeType)
bound += ItemHelper.GetRealMainValue(soulAttributeConfig.Value,item.level);
bound += ItemHelper.GetRealMainValue(soulAttributeConfig.Value, item.level);
for (var i = 0; i < item.viceIds.Length; i++)
{
if(item.viceIds[i]==0)
if (item.viceIds[i] == 0)
break;
soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.viceIds[i]);
if (soulAttributeConfig.Key == (int) attributeType)
bound += ItemHelper.GetRealViceValue(soulAttributeConfig.Value*(1+item.viceAdd[i]),item.quality);
bound += ItemHelper.GetRealViceValue(soulAttributeConfig.Value * (1 + item.viceAdd[i]), item.quality);
}
}
}
@ -88,8 +88,10 @@ namespace ET
{
Log.Error(e);
}
return bound;
}
public static bool CanAdd(this StarSoulBag self)
{
return self.ItemCount < StarSoulBag.MaxCount;
@ -136,7 +138,7 @@ namespace ET
/// </summary>
/// <param name="self"></param>
/// <param name="key"></param>
private static void Sync(this StarSoulBag self,byte key)
private static void Sync(this StarSoulBag self, byte key)
{
self.usedStarSoulDic.TryGetValue(key, out long value);
M2C_SyncStarSoulBagItemUsed proto = new();
@ -144,14 +146,12 @@ namespace ET
proto.value = value;
foreach (StarSoulSuit starSoulSuit in self.Suits)
{
proto.suitKVs.Add(new KV_int32_int32()
{
key = starSoulSuit.Id,
value = (int) starSoulSuit.type
});
proto.suitKVs.Add(new KV_int32_int32() { key = starSoulSuit.Id, value = (int) starSoulSuit.type });
}
MessageHelper.SendActor(self.GetParent<Unit>(), proto);
}
/// <summary>
/// 同步背包
/// </summary>
@ -213,10 +213,13 @@ namespace ET
foreach (int id in item.viceIds)
{
netItem.vice.Add(id);
}foreach (float id in item.viceAdd)
}
foreach (float id in item.viceAdd)
{
netItem.viceAdd.Add(id);
}
itemList.Add(netItem);
}
catch (Exception e)
@ -224,16 +227,14 @@ namespace ET
Log.Error(e);
}
}
usedIdMap.AddRange(self.usedStarSoulDic.Values);
foreach (StarSoulSuit starSoulSuit in self.Suits)
{
suitKVs.Add(new KV_int32_int32()
{
key = starSoulSuit.Id,
value = (int) starSoulSuit.type
});
suitKVs.Add(new KV_int32_int32() { key = starSoulSuit.Id, value = (int) starSoulSuit.type });
}
}
private static string AddExp(this StarSoulBag self, StarSoulItem item, List<(int, int)> expList, ref int needCount)
{
if (item == null)
@ -469,5 +470,29 @@ namespace ET
self.Sync(item.Id, item);
}
}
public static string Resolve(this StarSoulBag self, List<long> ids,List<RewardItem> _list)
{
foreach (var id in ids)
{
try
{
var item = self.Get(id);
if (item != null)
{
StarSoulResolveConfig config = StarSoulResolveConfigCategory.Instance.Get((long) item.quality);
DropHelper.Drop(self.GetParent<Unit>(),self.Parent.GetComponent<PlayerData>(), BattleType.None,config.DropId,null,1,"星魂分解",list: _list);
self.Remove(id);
}
}
catch (Exception e)
{
Log.Error(e);
return "系统错误";
}
}
return null;
}
}
}

View File

@ -106,7 +106,7 @@ namespace ET
}
}
private static async ETVoid Victory(CopyBattle self)
public static async ETVoid Victory(this CopyBattle self)
{
try
{

View File

@ -0,0 +1,24 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class MultiShopCategory : ACategory<MultiShop>
{
public static MultiShopCategory Instance;
public MultiShopCategory()
{
Instance = this;
}
}
public partial class MultiShop:IConfig
{
[BsonId]
public long Id { get; set; }
public byte Type;
public int ItemId;
public long Price;
}
}

View File

@ -0,0 +1,22 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class StarSoulResolveConfigCategory : ACategory<StarSoulResolveConfig>
{
public static StarSoulResolveConfigCategory Instance;
public StarSoulResolveConfigCategory()
{
Instance = this;
}
}
public partial class StarSoulResolveConfig:IConfig
{
[BsonId]
public long Id { get; set; }
public int DropId;
}
}

View File

@ -7073,9 +7073,6 @@ namespace ET
[ProtoMember(5)]
public List<KV_int32_int32> suitKVs = new List<KV_int32_int32>();
[ProtoMember(3)]
public long UnitId { get; set; }
}
[Message(OuterOpcode.M2C_SyncStarSoulBagInfo)]
@ -7289,4 +7286,38 @@ namespace ET
}
[ResponseType(typeof(M2C_ResolveStarSoul))]
[Message(OuterOpcode.C2M_ResolveStarSoul)]
[ProtoContract]
public partial class C2M_ResolveStarSoul:IActorLocationRequest
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(1)]
public List<long> ids = new List<long>();
}
[Message(OuterOpcode.M2C_ResolveStarSoul)]
[ProtoContract]
public partial class M2C_ResolveStarSoul:IActorLocationResponse
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(91)]
public int Error { get; set; }
[ProtoMember(92)]
public string Message { get; set; }
[ProtoMember(1)]
public List<RewardItem> itenList = new List<RewardItem>();
}
}

View File

@ -414,5 +414,7 @@ namespace ET
public const ushort M2C_StartActive = 20410;
public const ushort C2M_GetUIDByName = 20411;
public const ushort M2C_GetUIDByName = 20412;
public const ushort C2M_ResolveStarSoul = 20413;
public const ushort M2C_ResolveStarSoul = 20414;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
{ "fileMD5" : { "Anim.xlsx" : "545a68dfcadddaee53a26a0ba19376c1", "RobotAccount.xlsx" : "31431b89eabb3e5ecb63f20b59d30858", "LevelConfig.xlsx" : "91bc9dc0d28ba5b40afef4365043d3ab", "MapSceneConfig.xlsx" : "08b026a5e74128d9a03bc383fa166489", "PrefabConfig.xlsx" : "46ef389511d1c63705c182088bab0285", "RoleConfig.xlsx" : "b997e8f718e7427c9388ae0e27e93d16", "AnimationConfig.xlsx" : "0a7d708c495799f85a8c2a03ebb0dc49", "BossBase.xlsx" : "b4920d9ab94dfbf7fb7bd8811db3cbe5", "CameraPosition.xlsx" : "fbf71d84ad155465c43ff60240de4284", "CharacterGrowth.xlsx" : "a3d0398ea4ee2e3b8b716f7bb29e5f08", "EquipBase.xlsx" : "303516c5bc74dde57a9d0213bc1e00ea", "EquipForge.xlsx" : "fda15bcdc6b1fb0ec797091089682a23", "FamilyBossConfig.xlsx" : "eac9263d56e558729fa2e2d51ef865bf", "Forbidden.xlsx" : "28bbeeb0ebc58adab5eff9167497c7ac", "GoodsBase.xlsx" : "f902d34806e8737c6a8fffe732bbef3d", "ItemUpgrade.xlsx" : "55b96dc713fe42ed05cbbbd6b0865744", "MainStory.xlsx" : "48cc3d0b944dca80862a27c757d67f01", "MarketBase.xlsx" : "1cf03fdbc8dd3a807c3576cf48544d41", "MaterialBase.xlsx" : "fbaddf46f35c18d6f70db178f1c446a2", "MonsterBase.xlsx" : "388bdb7fee113c9a87aaca8e614e3bbf", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "2c1d2efd7f5c6116ba07f45c305180af", "SkillGroupBase.xlsx" : "e926883a016ef8b883c5c2f69a25ac2a", "SkinBase.xlsx" : "04d3e1c196a7c804e1ba6974f1284c39", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "88655b126bb3ad457457472d80fe7f84", "Sys_Scene.xlsx" : "2daaf184fdcfed70a9254ab5a612d5ec", "TaskBase.xlsx" : "f7aa18a2225a75262b9735bf97dabed1", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "1b4c3c31024f10137e240b4f2ec3df93", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "3372ca02daaf398954a5f11002899d83", "EffectConfig.xlsx" : "c49b8ae9632120926c26991a25381e35", "HonorShop.xlsx" : "e7f2f48832e7e5fb6f8d56771c0551a6", "SkillLearn.xlsx" : "fb6cbb056172b57358502f18abd86a62", "FamilyShop.xlsx" : "fceadcf0570b35f1f6f24b0a67c73020", "EquipAffixConfig.xlsx" : "e33e0d8d934d7c145c07f1093f412981", "EquipUpgrade.xlsx" : "dc4758cffc7cf51e2a125969b2fc1d49", "MainStoryExp.xlsx" : "1e191962e19dcae5344f53bda64a5dec", "ManulEquip.xlsx" : "0eb382ad71752f63bf1b235809c0c17f", "ManulEquipAttribute.xlsx" : "c4869a18be4c14784fd26b697fa23f86", "ManulEquipMonsterConfig.xlsx" : "da4ca0343b0c77aed966c3ee9568cf68", "TransmigrationAddConfig.xlsx" : "620912bfbe398914fa8b3bf21afeeccf", "EquipBase .xlsx" : "0d52dbe61e0808bc75f59207e73ad7fb", "TitleConfig.xlsx" : "07d9306032f86e7b9642a61a8a2ee966", "GemInlayConfig.xlsx" : "d2bfb6e76b895f5c8f1caed238eeb0f9", "Strengthentable.xlsx" : "fdb418090e31b0bfb93c9ae9fc9bd9f1", "GemPriceConfig.xlsx" : "011721c1a612634195bffd58fb895279", "MapMonsterConfig.xlsx" : "99b1d7454d78e7679deeb29150abd3db", "TransferJobConfig.xlsx" : "5b0daa2b0837e66196fbda214d72678a", "GMConfig.xlsx" : "c8e6ed377384ace1cf783e12b3ade4c8", "SuitConfig.xlsx" : "b67db1e911e14362e3409cb9f5f94216", "PetConfig.xlsx" : "4612dd8a5c3af3d3f21a4b7307eb169d", "PetLevelConfig.xlsx" : "a86c4cbde022ccd884ccf572ad5edfe7", "PetExploreConfig.xlsx" : "333043bd5c172def36660eca1dc8416a", "AIConfig.xlsx" : "871d248a954d8c59188e41d002135c75", "CopyConfig.xlsx" : "0c430ea6eb850380e71b9c6e336ac189", "CopyRewordConfig.xlsx" : "f4de20211685f21d15a8170061fdc7d2", "SpaceTravelConfig.xlsx" : "be6486259f73db40a93bdecef00a066e", "SceneTransConfig.xlsx" : "9e31820e1273e184987f970a20be4a45", "ArenaShop.xlsx" : "3fd4650500dd2bf83064a1fd46e4444d", "StarShop.xlsx" : "e14b5e252416a12318e775d86dd1b2f7", "StarSoulTypeConfig.xlsx" : "c16e5b01ce7261f11f3c1c4c8db1f1d9", "StarSoulAttributeConfig.xlsx" : "eae313d2f6cf4fdba87e53f51dc7d57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "0aadceefcf88bc9d2b6d5c643cad79ce", "StarSoulLevelConfig.xlsx" : "0602d7ff6fbb242a4a0ebfcffd13fa9d", "ActivePerDayConfig.xlsx" : "cf0b65ead205b7468f6e06136ae7a172", "StarSoulCopyConfig.xlsx" : "921a5d72a0a56ef33bbe03285dafe9d5" } }
{ "fileMD5" : { "Anim.xlsx" : "545a68dfcadddaee53a26a0ba19376c1", "RobotAccount.xlsx" : "31431b89eabb3e5ecb63f20b59d30858", "LevelConfig.xlsx" : "91bc9dc0d28ba5b40afef4365043d3ab", "MapSceneConfig.xlsx" : "08b026a5e74128d9a03bc383fa166489", "PrefabConfig.xlsx" : "46ef389511d1c63705c182088bab0285", "RoleConfig.xlsx" : "b997e8f718e7427c9388ae0e27e93d16", "AnimationConfig.xlsx" : "0a7d708c495799f85a8c2a03ebb0dc49", "BossBase.xlsx" : "b4920d9ab94dfbf7fb7bd8811db3cbe5", "CameraPosition.xlsx" : "fbf71d84ad155465c43ff60240de4284", "CharacterGrowth.xlsx" : "a3d0398ea4ee2e3b8b716f7bb29e5f08", "EquipBase.xlsx" : "303516c5bc74dde57a9d0213bc1e00ea", "EquipForge.xlsx" : "fda15bcdc6b1fb0ec797091089682a23", "FamilyBossConfig.xlsx" : "eac9263d56e558729fa2e2d51ef865bf", "Forbidden.xlsx" : "28bbeeb0ebc58adab5eff9167497c7ac", "GoodsBase.xlsx" : "f902d34806e8737c6a8fffe732bbef3d", "ItemUpgrade.xlsx" : "55b96dc713fe42ed05cbbbd6b0865744", "MainStory.xlsx" : "48cc3d0b944dca80862a27c757d67f01", "MarketBase.xlsx" : "1cf03fdbc8dd3a807c3576cf48544d41", "MaterialBase.xlsx" : "ce7fd3458aed257b8a78fb8c75a876f8", "MonsterBase.xlsx" : "388bdb7fee113c9a87aaca8e614e3bbf", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "2c1d2efd7f5c6116ba07f45c305180af", "SkillGroupBase.xlsx" : "e926883a016ef8b883c5c2f69a25ac2a", "SkinBase.xlsx" : "04d3e1c196a7c804e1ba6974f1284c39", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "88655b126bb3ad457457472d80fe7f84", "Sys_Scene.xlsx" : "2daaf184fdcfed70a9254ab5a612d5ec", "TaskBase.xlsx" : "f7aa18a2225a75262b9735bf97dabed1", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "da1f21299afe6361ec2705300e468345", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "c342bdb10b5c82e8601fe41e5a254409", "EffectConfig.xlsx" : "c49b8ae9632120926c26991a25381e35", "HonorShop.xlsx" : "e7f2f48832e7e5fb6f8d56771c0551a6", "SkillLearn.xlsx" : "fb6cbb056172b57358502f18abd86a62", "FamilyShop.xlsx" : "fceadcf0570b35f1f6f24b0a67c73020", "EquipAffixConfig.xlsx" : "e33e0d8d934d7c145c07f1093f412981", "EquipUpgrade.xlsx" : "dc4758cffc7cf51e2a125969b2fc1d49", "MainStoryExp.xlsx" : "1e191962e19dcae5344f53bda64a5dec", "ManulEquip.xlsx" : "0eb382ad71752f63bf1b235809c0c17f", "ManulEquipAttribute.xlsx" : "c4869a18be4c14784fd26b697fa23f86", "ManulEquipMonsterConfig.xlsx" : "da4ca0343b0c77aed966c3ee9568cf68", "TransmigrationAddConfig.xlsx" : "620912bfbe398914fa8b3bf21afeeccf", "EquipBase .xlsx" : "0d52dbe61e0808bc75f59207e73ad7fb", "TitleConfig.xlsx" : "07d9306032f86e7b9642a61a8a2ee966", "GemInlayConfig.xlsx" : "d2bfb6e76b895f5c8f1caed238eeb0f9", "Strengthentable.xlsx" : "fdb418090e31b0bfb93c9ae9fc9bd9f1", "GemPriceConfig.xlsx" : "011721c1a612634195bffd58fb895279", "MapMonsterConfig.xlsx" : "99b1d7454d78e7679deeb29150abd3db", "TransferJobConfig.xlsx" : "5b0daa2b0837e66196fbda214d72678a", "GMConfig.xlsx" : "c8e6ed377384ace1cf783e12b3ade4c8", "SuitConfig.xlsx" : "b67db1e911e14362e3409cb9f5f94216", "PetConfig.xlsx" : "4612dd8a5c3af3d3f21a4b7307eb169d", "PetLevelConfig.xlsx" : "a86c4cbde022ccd884ccf572ad5edfe7", "PetExploreConfig.xlsx" : "333043bd5c172def36660eca1dc8416a", "AIConfig.xlsx" : "871d248a954d8c59188e41d002135c75", "CopyConfig.xlsx" : "0c430ea6eb850380e71b9c6e336ac189", "CopyRewordConfig.xlsx" : "f4de20211685f21d15a8170061fdc7d2", "SpaceTravelConfig.xlsx" : "be6486259f73db40a93bdecef00a066e", "SceneTransConfig.xlsx" : "9e31820e1273e184987f970a20be4a45", "ArenaShop.xlsx" : "3fd4650500dd2bf83064a1fd46e4444d", "StarShop.xlsx" : "e14b5e252416a12318e775d86dd1b2f7", "StarSoulTypeConfig.xlsx" : "c16e5b01ce7261f11f3c1c4c8db1f1d9", "StarSoulAttributeConfig.xlsx" : "eae313d2f6cf4fdba87e53f51dc7d57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "0aadceefcf88bc9d2b6d5c643cad79ce", "StarSoulLevelConfig.xlsx" : "c19aa663716ffb2690e8b93edf3460bd", "ActivePerDayConfig.xlsx" : "cf0b65ead205b7468f6e06136ae7a172", "StarSoulCopyConfig.xlsx" : "921a5d72a0a56ef33bbe03285dafe9d5", "StarSoulResolveConfig.xlsx" : "ad1ce53ff0e030c0163ec5bb14b8e483", "MultiShop.xlsx" : "3f12a91537c13ad1ba30fe9696bb495b" } }

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
eNqF2r2O3GQUh/E+Uu4Bbb2Fz9f7wR2ko6CLIgpIkQIJIRqEuHcGVhn/bZ0nbJUFPZ7d4589npN8fP/uox2HvX7318tPX355+f6/b15+/PO3z48/v758+OPzrx8e/9kPr/X68sPvX35+/I/19vX3p9e33DV3yDfmoXn0+TgwT80TcsO8NK8mNzsi7/0zH5oPyv2Z262f2k/o6+z91i/tF/Q7z9d/jPLt63mIrYfYdIj6xiHskEM8voFDjG8dQg2a0SHmtw6hDs3//1Q2h1CL9rTocgh/HCLOQ2isEi0pPs+Fa6wOrSg+z0JprAptUDwuP/ZZq0GbVM/Lz33WKtAW1evyg5+14rNN9W4H7srOD4jraAfuCs6NYmsH7krNnWLvB+6qzElZRT9wV2ZOzCr7gbs6c3JW1Q9cnTk5q9EPXJk5MavZD1yVOSmT96jrwFWZkzJ5i7oMPJRZEDN5h7oMPNRZkDN5g9KBhzoLcja8HXgosyBmI9qBhyoLUjayH3iosiBlo2DgyiyI2RgwcHUW5Gz2wkOdBTmbvfBQZkHMZi88VVmSsgnCU5UlKZsgPJVZErMFwlOdJTlbvfBUZ0nOVi88lVkSs9ULT1WWpGyB8FRlScoWCE9llsRsgfBUZ0nO1mwHXuqsyNla7cBLmRUxW7sdeKmyImX76AdeqqxI2bZ+4KXMipht7wde6qzI2e4fC0udFTnb/WNhKbMiZrt/LCxVVqRsw2NhqbIiZRseC4cyG8Rsw2PhUGcDnNXoBz7U2XCK+4EPZTaC4nPgobEqG0nxOfDUWJGNorh/9xiKbAyKz3EPjRXZmBSfV/XUWJENQFZTPr9rrMbGpvi8qLfEU4nNg2J4CJ9KbBKxKcTU2FRjk4xN/dyttSKbhEwfUVTZVGWTlMkziimzqcwmMZOHFFNnU51NcqZPKQptKrT5hBa6qzlWwQlTaHNBDDezqdDmhnj28VJo64AYnsyWOlsG8YZYmS3vY3rHXKpsBcQGsSJbCTFcW0uNrYI4IFZia0AMj2VLhS0QtkHYUmELhNHb5VJhC4RtELZV2O6F2YTzvFXYNojhPG8Vth1iOM9bhe2AGM7zVmE7IYbzvFXYLojhPG8VtnthPuhUqbDdC3P8sVXYJmFwJ9kqbJOw/k7y+PMZ//tNO7DjgNg0BmGHQewag7DDIQ6NQdgREKfGIOxIiEtjEHYUxEPjAfGAeGo8IZ4QL40XxAvirfGGGITpXwKYgTADYbr+N6N7GAxMF/9mdA+DgenK34zuYTAwXfmb0T2MBqbCDIQtGpgKMxC24JLUjb8Z3MMG/c4qzBbcAOHC0H2/GQhLGJju+817YU5Xle77zQ1iQKL7fnOHGAam637zgJh+ZxXmvTCnq0qX/eYFMSDRZb85vEsa3Ld12W8Owgzu27rsNwdhBvdt3fWbb4iBp676LUCYw3nWTb8FCHM4z7rptwBhAedZN/0WICzgPOum3wKEBZxnXfRbgLCA86x7fgsQFnCedc1vAcKCzrMKi07Y/a/NL7USi001vLYu+i0PquE2pot+S6Ma7mO66Lf0vk6n11ZmGVTTa6uzTKrh4tJVv2X19XI4Y7rrtxxU0++t1M5df15nbpdd/7NVaeem/9b6aFt1du75b+3189XXVtf8dq757212r6tbfju3/Hn5oCEP3fvx9WxV2LnkT7r9lrys8jo3/Lf0sjx9pmrrXO/f0tmmCuvc7d/S1aaq6tzs39LdpkqqZp/6ZWn6TFVULUitTRVUbUi9S3Wfb+OANNpUOQ2DNC8Lx2ernAZw8upb9TTAk17z2iqoAaB89q2KGr0ok39OY+e/5zLd49sAUvIx3b+2n96/+wfYqBAG

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cf4958df5fe7e4f44882909f1bc56b9f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
eNrlnLFuHEcMhnsDfofg2lyxnBlyhupSpjPgUhAMB3GRxoWiVIHePSc4QO5zY1LK4G72ytOtOMsfS/IbDm/v37+7l23b5PjT34dPf/x+uPv26fDxr9/+/PL0y+Pj4e7+9M3T4e7w4fPjl69Pp7/+/O3Lw/Hw6dfTf9SX/3g+/vgqsefjw/PD8d81C9Ys6TVLaM0tdFUPXTUiV1mBlxVe1p162eBl26mXCi91kpdyYS8NXlray/r/eWkxWx65qmzwssPLvlMvB7wck7wsF/bS4aXv00vZzr08fcp62UJrhp7YEtMitKJUeAkSEdmpl2AfKbvxssFLsI/UnXoJ9pE8+2jozkJXlVD2Ka/xEuwjefaxJbwE+0ieffqVeqnwEuwjefYZS3gJ9pEs+0gL7TZKyEsN2dJQJtNYJGGvLSAk8Tla1G0FLQo4qmyTtJAltABtFZkUI7aEFmCyUiY9F2UJLUBupU56LvoSWoDvSpukxVhCC1Bg0Ula+BJagBWLTSLijjVBbqVP4lOuCY4qYxItck3wSvFJa47zNSu4oOb7Kw5rqKxV3mgNtamWN1pDdq/1jdaQH2t7ozVkmJrOMNWu9yThx1cNdIkqMky1m9YCma/2m9YCGbmOSVrIElqgUtT0zrb26z3HCWiB7lVDBWvbTWuB+ttkkhZlCS1AD63ctBZgn5be2dZxvedLAS3QIW0gt9ZuWgtwZ9PdaNFeoQW4s9lNawHubHnu9Os99wpogY5HA3e2cdNagDub70YLzWuh4E7dbloLcKem+z4eyooeyoqOnZKCAjXdQ/KQZh7SzKkZmEzT/SgP8amHqpKjG6UgJE0T0hYhVAlNT8uGKU0Fr2iaV0IzbxKawJENFVNBD5qmh43PBuqvpuvvhr6yooJpuoJt6BgraoCmawA7n4YsauksKpgWNOQhS+9/X3b5Z9aQOyy9gxQ8u4Z4t/QejLN0hhi1dIxyAsgQV5aOK86gGGLB0rHAX0wYYsHSsSCIBUMsWH4+JpS1ZIlzTUMkm0/SYolzzY481Lc5WpQlZoU6smiXSVosMSvUUQN6maRFbD6mXFgLVLBeJ2lRl9AC9be3SVq0JbQAPXSdpIUuoQXYp9skLWwJLUBuPU1urYS06EtoAe7sY5IWYwktwJ3dJ2kR4852WS0GuHNsc7QIzqhfWgtw55BJWsgSWoA7R5mkRVlCC3DnqJO0qEtoAe4c+dNr9H0GyG3kyS3UT230AIQ08oQU6s62CBWIot83wCsjzysaurPxijsDPYwxZQJamr/izlDLx5yZZQl1Ab67M0dl9XRlVXRvHbXJ07VJ0b11ZHdPZ3dFFDvyo6fzo6J768gwns4wimh3ZBhPZxhF99aROzydOxQnGY5493S8K04yHDHqacI3nGQ44srTjGznsXCycGbt5VPWWoE1gbV0LFiFtQJr6ViwBmsV1tKxYAprDdbSsYDaLXiTjqTfpCP4tYjgjTWSfmON/Pc7kIf37/4Bm8KXDA==
eNrlnDFvozcMhvcD7j8UXutBlERKzNaxW4GOQXBocTd06ZCmU5H/3gTXwU+XI5MTbNmj4y+U+OIj+YiSdf/xw72UUuT4wz+HT398Ptx9/XT49e/f//ry9NPj4+Hu/uWbp8Pd4ZffHr/8+fTy1x+/fnk4Hj79/PIf7fU/no/ffkrs+fjw/HD8b8yKMWt6zBoas4SeGqGnZuQpq/Cywct2pV52eNmv1EuFl7rISzmzlwYvLe1l+35eWsyWR56qBV4OeDmu1MsJL+ciL+uZvXR46dfppZRTL18+Zb3soTFDb2yNaREaURq8BImIXKmXYB+pV+Nlh5dgH2lX6iXYR/Lso6GZhZ6qoexT3+Il2Efy7GNbeAn2kTz7jAv1UuEl2Efy7DO38BLsI1n2kR5abdSQlxqypaFMprFIwlpbQEjia7RoZQctKjiqlkVayBZagLaqLIoR20ILMFmti96LuoUWILfaFr0XYwstwHe1L9JibqEFKLDqIi18Cy3AitUWEfHAmCC3OhbxKccER9W5iBY5Jnil+qIx5+mYDVzQ8v0VhzVU1ibvtIba1Oo7rSG7t/ZOa8iPrb/TGjJMS2eYZpe7k/Dtpya6RA0ZptlNa4HM18ZNa4GM3OYiLWQLLVApWnpl28bl7uMEtED3qqOC9XLTWqD+dlmkRd1CC9BDrzetBdinp1e2bV7u/lJAC3RIO8it95vWAtzZ9Wq06G/QAtzZ7aa1AHf2PHf65e57BbRAx6ODO/u8aS3And2vRgvNa6HgTi03rQW4U9N9Hw9lRQ9lRcdKSUGBmu4heUgzD2nm1AxMpul+lIf41ENVydGNUhCSpgmpRAhVQqenpeCUpoJXNM0roTNvEjqBIwUVU0EPmqaHwncD9VfT9begr6yoYJquYAUdY0UN0HQNYOfTkEUtnUUFpwUNecjS69/XVf6JNeQOS68gBe+uId4tvQbjWTpDjFo6RnkCyBBXlo4rnkExxIKlY4G/mDDEgqVjQRALhliw/PmYUNaSLfY1DZFsvkiLLfY1B/LQKGu0qFucFRrIokMWabHFWaGBGjDqIi1i52PqmbVABRttkRZtCy1Qf0dfpEXfQgvQw9BFWugWWoB9hi3SwrbQAuQ20uTWa0iLsYUW4M4xF2kxt9AC3Dl8kRYx7uzn1WKCO2dZo0XwjPq5tQB3TlmkhWyhBbhz1kVa1C20AHfOtkiLtoUW4M6Z371G32eC3Gae3EL91E4PQEgzT0ih7myPUIEo+n0TvDLzvKKhmc03zAz0MOeSE9DS/Q0zQy2fa84sS6gL8L+ZOSqrpyuronvrqE2erk2K7q0ju3s6uyui2JEfPZ0fFd1bR4bxdIZRRLsjw3g6wyi6t47c4encodjJcMS7p+NdsZPhiFFPE75hJ8MRV55mZDuNhRcLJ9ZeP2WtVVgTWEvHgjVYq7CWjgXrsNZgLR0LprDWYS0dC6jdgpt0JH2TjuDXIoIbayR9Y43gdyCCm2EkfTOMWKh2jFAeH6EeyOA7OTH/ud38HfP33eaPe1pEynbzR04T2W7+yKJSd5r/w8cP/wK8UPJt

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
eNpVyTsKgDAMANC90DtI5g5N+tE6u3iGUlxcnBRX8e5+AoFsD161pqLrLli2FUZ0MJ37MX/06Pu7ufdJnvQP/EE+6C/8UT6qR8+f5JN+5M/yWT/936x5AKH2Mhk=

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7405366c9eacc7545ac920d9dd1dfa6e
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,7 @@
namespace ET.EventType
{
public struct OpenMultiShopUI
{
public Scene zoneScene;
}
}

View File

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

View File

@ -0,0 +1,38 @@
using System.Collections.Generic;
using ET;
namespace Cal.DataTable
{
public enum ShopType: byte
{
None = 0,
Gem,
Honor,
Pvp,
Family
}
public partial class MultiShopCategory
{
private UnOrderMultiMap<byte, MultiShop> shopTypeDic = new UnOrderMultiMap<byte, MultiShop>();
public List<MultiShop> GetByType(ShopType type)
{
var list= this.shopTypeDic[(byte) type];
if (list == null)
{
Log.Error($"list ==null where type = {type}");
}
return list;
}
public override void EndInit()
{
base.EndInit();
foreach (var kv in this.dict)
{
shopTypeDic.Add(kv.Value.Type,kv.Value);
}
}
}
}

View File

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

View File

@ -7073,9 +7073,6 @@ namespace ET
[ProtoMember(5)]
public List<KV_int32_int32> suitKVs = new List<KV_int32_int32>();
[ProtoMember(3)]
public long UnitId { get; set; }
}
[Message(OuterOpcode.M2C_SyncStarSoulBagInfo)]
@ -7289,4 +7286,38 @@ namespace ET
}
[ResponseType(typeof(M2C_ResolveStarSoul))]
[Message(OuterOpcode.C2M_ResolveStarSoul)]
[ProtoContract]
public partial class C2M_ResolveStarSoul:IActorLocationRequest
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(1)]
public List<long> ids = new List<long>();
}
[Message(OuterOpcode.M2C_ResolveStarSoul)]
[ProtoContract]
public partial class M2C_ResolveStarSoul:IActorLocationResponse
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(91)]
public int Error { get; set; }
[ProtoMember(92)]
public string Message { get; set; }
[ProtoMember(1)]
public List<RewardItem> itenList = new List<RewardItem>();
}
}

View File

@ -414,5 +414,7 @@ namespace ET
public const ushort M2C_StartActive = 20410;
public const ushort C2M_GetUIDByName = 20411;
public const ushort M2C_GetUIDByName = 20412;
public const ushort C2M_ResolveStarSoul = 20413;
public const ushort M2C_ResolveStarSoul = 20414;
}
}

View File

@ -0,0 +1,24 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class MultiShopCategory : ACategory<MultiShop>
{
public static MultiShopCategory Instance;
public MultiShopCategory()
{
Instance = this;
}
}
public partial class MultiShop:IConfig
{
[BsonId]
public long Id { get; set; }
public byte Type;
public int ItemId;
public long Price;
}
}

View File

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

View File

@ -0,0 +1,22 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class StarSoulResolveConfigCategory : ACategory<StarSoulResolveConfig>
{
public static StarSoulResolveConfigCategory Instance;
public StarSoulResolveConfigCategory()
{
Instance = this;
}
}
public partial class StarSoulResolveConfig:IConfig
{
[BsonId]
public long Id { get; set; }
public int DropId;
}
}

View File

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

View File

@ -847,7 +847,18 @@ namespace ET
pos += offset;
ui.self.position = pos;
}
public static string GetAdditionalPrice(MultiShop config)
{
return $"\n售价: {config.Price}" + (ShopType)config.Type switch
{
ShopType.None => "",
ShopType.Gem => "星币",
ShopType.Honor => "荣誉",
ShopType.Pvp => "竞技币",
ShopType.Family => "家族贡献",
_ => throw new ArgumentOutOfRangeException()
};
}
public static string GetAdditionalPrice(IConfig itemBase, float discount = 1, MarketType marketType = MarketType.VoucherMarket)
{
sb.Length = 0;

View File

@ -30,11 +30,12 @@ namespace ET
public FUI_FrameBag m_frame;
public GList m_slotList;
public GTextField m_txtCapity;
public GGroup m_gorup;
public GTextField m_txtSelection;
public FUI_ButtonSingle m_btnType;
public FUI_ButtonSingle m_btnPosType;
public FUI_ButtonSingle m_btnTime;
public FUI_ComboBox m_comBoxPos;
public FUI_ButtonOnlyText m_btnReslove;
public Transition m_Effect;
public const string URL = "ui://71ktouo7f0oatmn";
@ -115,11 +116,12 @@ namespace ET
m_frame = FUI_FrameBag.Create(domain,com.GetChildAt(0));
m_slotList = (GList)com.GetChildAt(1);
m_txtCapity = (GTextField)com.GetChildAt(2);
m_gorup = (GGroup)com.GetChildAt(3);
m_txtSelection = (GTextField)com.GetChildAt(3);
m_btnType = FUI_ButtonSingle.Create(domain,com.GetChildAt(4));
m_btnPosType = FUI_ButtonSingle.Create(domain,com.GetChildAt(6));
m_btnTime = FUI_ButtonSingle.Create(domain,com.GetChildAt(14));
m_comBoxPos = FUI_ComboBox.Create(domain,com.GetChildAt(16));
m_btnReslove = FUI_ButtonOnlyText.Create(domain,com.GetChildAt(17));
m_Effect = com.GetTransitionAt(0);
}
}
@ -141,12 +143,13 @@ public override void Dispose()
m_frame = null;
m_slotList = null;
m_txtCapity = null;
m_gorup = null;
m_txtSelection = null;
m_btnType = null;
m_btnPosType = null;
m_btnTime = null;
m_comBoxPos.Dispose();
m_comBoxPos = null;
m_btnReslove = null;
m_Effect = null;
}
}

View File

@ -0,0 +1,128 @@
/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
using ET;
using FairyGUI;
using FairyGUI.Utils;
namespace ET
{
[ObjectSystem]
public class FUI_MultiShopUI_AwakeSystem : AwakeSystem<FUI_MultiShopUI, GObject>
{
public override void Awake(FUI_MultiShopUI self, GObject go)
{
self.Awake(go);
}
}
public sealed class FUI_MultiShopUI : FUI
{
public const string UIPackageName = "Shop";
public const string UIResName = "MultiShopUI";
/// <summary>
/// {uiResName}的组件类型(GComponent、GButton、GProcessBar等)它们都是GObject的子类。
/// </summary>
public GComponent self;
public FUI_FrameShopUI m_frame;
public GList m_pageList;
public GList m_slotList;
public const string URL = "ui://9r7gspayfc29g";
private static GObject CreateGObject()
{
return UIPackage.CreateObject(UIPackageName, UIResName);
}
private static void CreateGObjectAsync(UIPackage.CreateObjectCallback result)
{
UIPackage.CreateObjectAsync(UIPackageName, UIResName, result);
}
public static FUI_MultiShopUI CreateInstance(Entity domain)
{
return EntityFactory.Create<FUI_MultiShopUI, GObject>(domain, CreateGObject());
}
public static ETTask<FUI_MultiShopUI> CreateInstanceAsync(Entity domain)
{
ETTaskCompletionSource<FUI_MultiShopUI> tcs = new ETTaskCompletionSource<FUI_MultiShopUI>();
CreateGObjectAsync((go) =>
{
tcs.SetResult(EntityFactory.Create<FUI_MultiShopUI, GObject>(domain, go));
});
return tcs.Task;
}
public static FUI_MultiShopUI Create(Entity domain,GObject go)
{
return EntityFactory.Create<FUI_MultiShopUI, GObject>(domain,go);
}
/// <summary>
/// 通过此方法获取的FUI在Dispose时不会释放GObject需要自行管理一般在配合FGUI的Pool机制时使用
/// </summary>
public static FUI_MultiShopUI GetFormPool(Entity domain,GObject go)
{
var fui = go.Get<FUI_MultiShopUI>();
if(fui == null)
{
fui = Create(domain,go);
}
fui.isFromFGUIPool = true;
return fui;
}
public void Awake(GObject go)
{
if(go == null)
{
return;
}
GObject = go;
if (string.IsNullOrWhiteSpace(Name))
{
Name = Id.ToString();
}
self = (GComponent)go;
self.Add(this);
var com = go.asCom;
if(com != null)
{
m_frame = FUI_FrameShopUI.Create(domain,com.GetChildAt(0));
m_pageList = (GList)com.GetChildAt(1);
m_slotList = (GList)com.GetChildAt(2);
}
}
public override void Dispose()
{
if(IsDisposed)
{
return;
}
base.Dispose();
self.Remove();
self = null;
m_frame.Dispose();
m_frame = null;
m_pageList = null;
m_slotList = null;
}
}
}

View File

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

View File

@ -7,6 +7,7 @@ namespace ET
public const string Shop = "Shop";
public const string Shop_FrameShopUI = "ui://Shop/FrameShopUI";
public const string Shop_MarketUI = "ui://Shop/MarketUI";
public const string Shop_MultiShopUI = "ui://Shop/MultiShopUI";
public const string Shop_ShopUI = "ui://Shop/ShopUI";
}
}

View File

@ -65,9 +65,21 @@ namespace ET
ChangeName();
TrialReword();
StarSoulUpgradeUI();
AddMultiShopUI();
await ETTask.CompletedTask;
}
private void AddMultiShopUI()
{
var btn = ui.m_taskList.AddItemFromPool().asButton;
btn.title = "杂货店";
btn.onClick.Set(() =>
{
Game.EventSystem.Publish(new OpenMultiShopUI() { zoneScene = this.zoneScene });
this.ui.GetComponent<FUIWindowComponent>().Hide();
});
}
private void StarSoulUpgradeUI()
{
var btn = ui.m_taskList.AddItemFromPool().asButton;

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 95d1b0a7c4eb2ab4984f7481ed129c0d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,120 @@
using Cal.DataTable;
using FairyGUI;
using System;
using System.Collections.Generic;
namespace ET
{
public class MultiShopUIAwakeSyatem : AwakeSystem<MultiShopUI>
{
public override void Awake(MultiShopUI self)
{
self.Awake();
}
}
public class MultiShopUIDestroySyatem : DestroySystem<MultiShopUI>
{
public override void Destroy(MultiShopUI self)
{
self.Destroy();
}
}
public class MultiShopUI : Entity
{
public FUI_MultiShopUI ui;
private Scene zoneScene;
private ShopType shopType;
public void Awake()
{
zoneScene = this.ZoneScene();
ui = GetParent<FUI_MultiShopUI>();
AwakeAsync().Coroutine();
}
private async ETVoid AwakeAsync()
{
RegisterEvent();
shopType = ShopType.Gem;
Refresh();
await ETTask.CompletedTask;
}
private void RegisterEvent()
{
this.ui.m_pageList.onClickItem.Set(() =>
{
this.shopType = (ShopType) this.ui.m_pageList.selectedIndex+1;
Refresh();
});
}
private void Refresh()
{
ui.m_slotList.RemoveChildrenToPool();
List<MultiShop> listItemConfig = MultiShopCategory.Instance.GetByType(this.shopType);
if (listItemConfig == null)
{
Log.Error("config == null");
return;
}
for (var i = 0; i < listItemConfig.Count; i++)
{
var btn =this.ui.m_slotList.AddItemFromPool().asButton;
int index = i;
var config = listItemConfig[index];
btn.icon = UIPackage.GetItemURL(FUIPackage.Bag,BagHelper.GetIconName(config.ItemId).Item2);
TabHelper.SetTab(btn, () =>
{
TabHelper.OpenUI(config.ItemId, TabHelper.GetAdditionalPrice(config));
});
//!双击购买
btn.onClick.Set1(async content =>
{
if (content.inputEvent.isDoubleClick)
{
#if UNITY_STANDALONE
if (!content.inputEvent.ctrl)
{
await SendBuyProto(index,1);
return;
}
FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
tipUI.m_btnYes.self.onClick.Clear();
tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
tipUI.AddEventCallBack(TipYesCallBack);
async void TipYesCallBack()
{
if (int.TryParse(tipUI.m_IptTxt.text, out int count))
{
if (count <= 0)
return;
await SendBuyProto(index,count);
}
}
#else
await SendBuyProto(index, 1);
#endif
async ETTask SendBuyProto(int index,int count)
{
// M2C_BuyInShop ret = await this.zoneScene.GetComponent<SessionComponent>().Call<M2C_BuyInShop>(new C2M_BuyInShop { PageIndex = this.ui.m_pageList.selectedIndex, SlotIndex = index, Count = count });
// if (!ret.Message.IsNullOrEmpty())
// {
// TipHelper.OpenUI(ret.Message);
// return;
// }
//
// Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI { list = ret.BagMapList });
}
}
});
}
}
public void Destroy()
{
}
}
}

View File

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

View File

@ -0,0 +1,25 @@
using ET;
using System;
using System.Collections.Generic;
namespace ET
{
[UIEvent(FUIPackage.Shop_MultiShopUI)]
public class MultiShopUIEvent : AUIEvent
{
public override async ETTask<FUI> OnCreate(FUIComponent fuiComponent)
{
if (!(FUIComponent.Instance.Get(FUIPackage.Shop_MultiShopUI) is FUI_MultiShopUI ui))
{
ui =await FUI_MultiShopUI.CreateInstanceAsync(fuiComponent);
ui.Name = FUIPackage.Shop_MultiShopUI;
}
return ui;
}
public override void OnRemove(FUIComponent fuiComponent)
{
}
}
}

View File

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

View File

@ -0,0 +1,18 @@
using ET.EventType;
using System;
using System.Collections.Generic;
namespace ET
{
public class OpenMultiShopUIEvent : AEvent<ET.EventType.OpenMultiShopUI>
{
public override async ETTask Run(ET.EventType.OpenMultiShopUI args)
{
MultiShopUI ui =await FUIHelper.Open<FUI_MultiShopUI,MultiShopUI>(args.zoneScene, FUIPackage.Shop_MultiShopUI, WindowPos.Center, (_ui)=>
{
//ui.m_Effect.Play();
});
await ETTask.CompletedTask;
}
}
}

View File

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

View File

@ -35,11 +35,11 @@ namespace ET
private async ETVoid AwakeAsync()
{
ui.m_pageList.selectedIndex = 0;
ShowItems(0);
this.ShowItems(0);
ui.m_pageList.onClickItem.Set1(concent =>
{
ShowItems(ui.m_pageList.selectedIndex);
this.ShowItems(ui.m_pageList.selectedIndex);
});
//!拖拽进
@ -49,78 +49,78 @@ namespace ET
});
//!+展示Shop中的Item
void ShowItems(int pageIndex)
{
ui.m_slotList.RemoveChildrenToPool();
var list = ShopComponent.GetShopBase(this.ui.ZoneScene(),pageIndex);
if (list == null) return;
int index = 0;
foreach (ShopBase shopBase in list)
{
int temp = index++;
GButton btn = ui.m_slotList.AddItemFromPool().asButton;
btn.icon = UIPackage.GetItemURL(FUIPackage.Bag, BagHelper.GetIconName(shopBase.ItemId).Item2);
//!显示页签
#if UNITY_STANDALONE
btn.onRollOver.Set(() => TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase)));
//!隐藏页签
btn.onRollOut.Set(TabHelper.HideUI);
#endif
//!双击购买
btn.onClick.Set1(async content =>
{
if (content.inputEvent.isDoubleClick)
{
await ETTask.CompletedTask;
}
private void ShowItems(int pageIndex)
{
this.ui.m_slotList.RemoveChildrenToPool();
var list = ShopComponent.GetShopBase(this.ui.ZoneScene(), pageIndex);
if (list == null)
return;
int index = 0;
foreach (ShopBase shopBase in list)
{
int temp = index++;
GButton btn = this.ui.m_slotList.AddItemFromPool().asButton;
btn.icon = UIPackage.GetItemURL(FUIPackage.Bag, BagHelper.GetIconName(shopBase.ItemId).Item2);
//!显示页签
#if UNITY_STANDALONE
if (!content.inputEvent.ctrl)
btn.onRollOver.Set(() => TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase)));
//!隐藏页签
btn.onRollOut.Set(TabHelper.HideUI);
#endif
//!双击购买
btn.onClick.Set1(async content =>
{
if (content.inputEvent.isDoubleClick)
{
#if UNITY_STANDALONE
if (!content.inputEvent.ctrl)
{
await SendBuyProto(1);
return;
}
FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
tipUI.m_btnYes.self.onClick.Clear();
tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
tipUI.AddEventCallBack(TipYesCallBack);
async void TipYesCallBack()
{
if (int.TryParse(tipUI.m_IptTxt.text, out int count))
{
await SendBuyProto(1);
return;
}
FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
tipUI.m_btnYes.self.onClick.Clear();
tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
tipUI.AddEventCallBack(TipYesCallBack);
async void TipYesCallBack()
{
if (int.TryParse(tipUI.m_IptTxt.text, out int count))
{
if (count <= 0) return;
await SendBuyProto(count);
}
if (count <= 0)
return;
await SendBuyProto(count);
}
}
#else
await SendBuyProto(1);
#endif
async ETTask SendBuyProto(int count)
async ETTask SendBuyProto(int count)
{
M2C_BuyInShop ret = await this.zoneScene.GetComponent<SessionComponent>().Call<M2C_BuyInShop>(new C2M_BuyInShop { PageIndex = this.ui.m_pageList.selectedIndex, SlotIndex = temp, Count = count });
if (!ret.Message.IsNullOrEmpty())
{
M2C_BuyInShop ret = await zoneScene.GetComponent<SessionComponent>().Call<M2C_BuyInShop>(new C2M_BuyInShop { PageIndex = ui.m_pageList.selectedIndex, SlotIndex = temp, Count = count });
if (!ret.Message.IsNullOrEmpty())
{
TipHelper.OpenUI(ret.Message);
return;
}
Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI
{
list=ret.BagMapList
});
TipHelper.OpenUI(ret.Message);
return;
}
Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI { list = ret.BagMapList });
}
}
#if !UNITY_STANDALONE
else
{
TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase));
}
#endif
});
}
});
}
await ETTask.CompletedTask;
}
public async ETVoid SellItem(EventContext context)
{
if (!(context.data is UIDragArgs args)) return;

View File

@ -42,6 +42,8 @@ namespace ET
private List<long> list = new List<long>();
private LinkedList<StarSoulItem> tempList = new LinkedList<StarSoulItem>();
private List<long> selection = new List<long>();
public static event Action<long> clickEvent;
public void Awake()
@ -55,6 +57,7 @@ namespace ET
// this.rollOverAction = this.OnRollOver;
this.ui.m_slotList.itemRenderer = OnItemRender;
RegistEvent();
ReFreshSelection();
}
AwakeAsync().Coroutine();
@ -63,6 +66,7 @@ namespace ET
private async ETVoid AwakeAsync()
{
bag ??= this.zoneScene.GetComponent<UnitComponent>().MyUnit.GetComponent<StarSoulBag>();
clickEvent += OnClickStarSoul;
ShowSlots();
await ETTask.CompletedTask;
}
@ -163,6 +167,56 @@ namespace ET
this.ui.m_sortType.onChanged.Set(SortTypeChanged);
this.ui.m_quality.onChanged.Set(QualityTypeChanged);
ui.m_comBoxPos.self.onChanged.Set(ChangeEquipPos);
this.ui.m_btnReslove.self.onClick.Set(Resolve);
}
private void OnClickStarSoul(long obj)
{
var item = this.bag.Get(obj);
if(item.isLocked|| item.isUsed)
return;
if (this.selection.Contains(obj))
this.selection.Remove(obj);
else
this.selection.Add(obj);
this.ReFreshSelection();
}
private void Resolve()
{
FUI_TipUI tip = TipHelper.OpenUI($"是否分解已经选择的 {selection.Count} 个星魂?", tipType: TipType.Double);
tip.m_btnYes.self.onClick.Set(async () =>
{
var proto = new C2M_ResolveStarSoul();
proto.ids.AddRange(this.selection);
selection.Clear();
this.ReFreshSelection();
M2C_ResolveStarSoul ret = await zoneScene.GetComponent<SessionComponent>().Call<M2C_ResolveStarSoul>(proto);
if (!ret.Message.IsNullOrEmpty())
{
TipHelper.OpenUI(ret.Message);
return;
}
string str = null;
foreach (RewardItem rewardItem in ret.itenList)
{
str += $"{BagHelper.GetIconName(rewardItem.Id).Item1} X {rewardItem.Count}\n";
}
TipHelper.OpenUI(str);
});
}
private void ReFreshSelection()
{
if (this.selection.Count == 0)
{
this.ui.m_txtSelection.text = null;
return;
}
this.ui.m_txtSelection.text = $"已经选择 {this.selection.Count} 个星魂";
}
private void ChangeEquipPos()
@ -287,6 +341,8 @@ namespace ET
public void Destroy()
{
list.Clear();
this.selection.Clear();
clickEvent -= OnClickStarSoul;
}
}
}

View File

@ -125,7 +125,7 @@
Title = 1038,
Energy = 1039,
/// <summary>
/// 竞技币
/// 竞技币,废弃
/// </summary>
PvpCurrency = 1040,
/// <summary>