Save_Farm_FarmerChange

This commit is contained in:
Ino 2025-07-27 03:24:51 +09:00
parent 6199d1ac78
commit d63fbbf635
7 changed files with 89 additions and 185 deletions

View File

@ -356,6 +356,7 @@ function Get_ItemAmount(urod, itemid)
function Check_ItemAmount(urod, itemid, amount)
{
var obtainAmount = Get_ItemAmount(urod, itemid);
//log.info(itemid + ", " + obtainAmount + " : " + amount);
return obtainAmount >= amount;
}
function IsObtainItem(urod, itemid)
@ -2592,6 +2593,25 @@ handlers.Save_Farm_EatFruit = function(args)
}
return Get_Return(1);
}
handlers.Save_Farm_FarmerChange = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
if (Check_ItemAmount(urod, args.FarmerID, 1))
{
urod.Equip.Equip["Farmer"] = args.FarmerID;
Add_MissionCount(Get_MissionTable(), urod, "FARMER_EQUIPMENT_LIMIT", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -33,7 +33,6 @@ RectTransform:
- {fileID: 3821647038101687203}
- {fileID: 4953497114337228060}
- {fileID: 7715454383662264264}
- {fileID: 5365032730221507194}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@ -56,11 +55,12 @@ MonoBehaviour:
images:
- {fileID: 24565249291554019}
- {fileID: 447057568840599410}
- {fileID: 6846455196918730685}
texts:
- {fileID: 3678396648584018706}
- {fileID: 5425483015839106162}
gos:
- {fileID: 2590119537108341752}
- {fileID: 3740195147438129737}
- {fileID: 0}
--- !u!1 &433799525626463403
GameObject:
m_ObjectHideFlags: 0
@ -340,82 +340,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ab4e7dba3733e584abb76cd4fbc0e116, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2590119537108341752
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5365032730221507194}
- component: {fileID: 7057147357923517044}
- component: {fileID: 6766081078460082816}
m_Layer: 5
m_Name: Lock
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &5365032730221507194
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2590119537108341752}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6157144948826713201}
m_Father: {fileID: 5968869704853674135}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7057147357923517044
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2590119537108341752}
m_CullTransparentMesh: 1
--- !u!114 &6766081078460082816
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2590119537108341752}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.78431374}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 5c8299abe57a3d74fbae741459ec31fe, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3740195147438129737
GameObject:
m_ObjectHideFlags: 0
@ -492,81 +416,6 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7078028915325941373
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6157144948826713201}
- component: {fileID: 3625395249833600047}
- component: {fileID: 4980604291704495681}
m_Layer: 5
m_Name: New Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6157144948826713201
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7078028915325941373}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5365032730221507194}
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, y: 0}
m_SizeDelta: {x: 64, y: 64}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3625395249833600047
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7078028915325941373}
m_CullTransparentMesh: 1
--- !u!114 &4980604291704495681
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7078028915325941373}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: bffba89387886b949bc6587b7d2195ae, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7639750623652581359
GameObject:
m_ObjectHideFlags: 0
@ -653,7 +502,6 @@ GameObject:
- component: {fileID: 6066231395332989519}
- component: {fileID: 2125610755618679847}
- component: {fileID: 5425483015839106162}
- component: {fileID: 6260917610011076106}
m_Layer: 5
m_Name: Local TMP
m_TagString: Untagged
@ -778,16 +626,3 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &6260917610011076106
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7815061363958341463}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c2aa95ff1b7adc044bd9372cf2958828, type: 3}
m_Name:
m_EditorClassIdentifier:
m_localtextKey: 207

View File

@ -2485,6 +2485,41 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Farm_EatFruit(id, amount, _act); }, 2f);
});
}
public void Save_Farm_FarmerChange(int id, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
FarmerID = id,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (미보유))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900042); break;
}
}
else
Set_Coroutine(() => { Save_Farm_FarmerChange(id, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Farm_FarmerChange(id, _act); }, 2f);
});
}
#endregion
#region

View File

@ -4,10 +4,10 @@ using UnityEngine.UI;
public class FarmFarmerCard : CardBase
{
public Image[] images; // 0 등급, 1 일꾼
public TextMeshProUGUI[] texts; // 0 이름
public GameObject[] gos; // 0 잠금, 1 착용중
public Image[] images; // 0 등급, 1 일꾼, 2 상태
public TextMeshProUGUI[] texts; // 0 이름, 1 상태
static Color32 textColor = new Color32(45, 48, 98, 255);
FarmerListTableData m_Data;
public override void Set<T>(T _base)
@ -20,8 +20,25 @@ public class FarmFarmerCard : CardBase
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_FarmerID);
texts[0].text = m_Data.Get_Name();
gos[0].SetActive(!IsObtainFarmer());
gos[1].SetActive(sdata.Get_EqiupmentEquip(eItem.Farmer) == m_Data.n_FarmerID);
if (sdata.Get_EqiupmentEquip(eItem.Farmer) == m_Data.n_FarmerID)
{ // 장착중
texts[1].text = table_localtext.Ins.Get_Text(207);
texts[1].color = textColor;
images[2].sprite = UIAtlasMgr.Ins.Get_Sprite("label 5");
}
else if (sdata.IsObtainItem(m_Data.n_FarmerID))
{ // 보유중
texts[1].text = table_localtext.Ins.Get_Text(402);
texts[1].color = textColor;
images[2].sprite = UIAtlasMgr.Ins.Get_Sprite("label 3");
}
else
{ // 미보유
texts[1].text = table_localtext.Ins.Get_Text(208);
texts[1].color = Color.white;
images[2].sprite = UIAtlasMgr.Ins.Get_Sprite("label 3 black");
}
Set_Selected(false);
}
public override void Set(int _val)
@ -37,16 +54,9 @@ public class FarmFarmerCard : CardBase
public override TableDataBase Get_Data() { return m_Data; }
public override int Get_IntData() { return m_Data.n_FarmerID; }
bool IsObtainFarmer()
{
return ServerInfo.Ins.m_ServerData.Get_ItemAmount(m_Data.n_FarmerID) > 0;
}
public void OnClick_Select()
{
FarmFarmerUI.Ins.Set_SelectCard(this);
//ServerInfo.Ins.m_ServerData.Add_Item(m_Data.n_FarmerID, 1);
//MyValue.Get_ActorStatInfoorNull(eRole.PC);
gos[1].SetActive(IsObtainFarmer());
}
}

View File

@ -46,11 +46,15 @@ public class FarmFarmerUI : BotMenuBase
public void OnClick_Equip()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Check_ItemAmount(m_SelectCard.Get_IntData(), 1))
var farmerid = m_SelectCard.Get_IntData();
if (sdata.Check_ItemAmount(farmerid, 1) && !sdata.IsEquip(eItem.Farmer, farmerid))
{
sdata.Equip.Set_Equip(eItem.Farmer, m_SelectCard.Get_IntData());
sdata.Add_MissionCount(ePurpose.FARMER_EQUIPMENT_LIMIT);
Set();
ServerInfo.Ins.Save_Farm_FarmerChange(farmerid, () =>
{
sdata.Equip.Set_Equip(eItem.Farmer, farmerid);
sdata.Add_MissionCount(ePurpose.FARMER_EQUIPMENT_LIMIT);
Set();
});
}
}