@@ -50,6 +50,17 @@ public UserItem Item
50
50
}
51
51
}
52
52
53
+ public UserItem ShadowItem
54
+ {
55
+ get
56
+ {
57
+ if ( GridType == MirGridType . Craft && _itemSlot >= 0 && _itemSlot < ItemArray . Length )
58
+ return CraftDialog . ShadowItems [ _itemSlot ] ;
59
+
60
+ return null ;
61
+ }
62
+ }
63
+
53
64
public UserItem [ ] ItemArray
54
65
{
55
66
get
@@ -84,6 +95,8 @@ public UserItem[] ItemArray
84
95
return MailComposeParcelDialog . Items ;
85
96
case MirGridType . Refine :
86
97
return GameScene . Refine ;
98
+ case MirGridType . Craft :
99
+ return CraftDialog . IngredientSlots ;
87
100
88
101
default :
89
102
throw new NotImplementedException ( ) ;
@@ -94,7 +107,7 @@ public UserItem[] ItemArray
94
107
95
108
public override bool Border
96
109
{
97
- get { return ( GameScene . SelectedCell == this || MouseControl == this || Locked ) && GridType != MirGridType . DropPanel ; }
110
+ get { return ( GameScene . SelectedCell == this || MouseControl == this || Locked ) && GridType != MirGridType . DropPanel && ( GridType != MirGridType . Craft ) ; }
98
111
}
99
112
100
113
private bool _locked ;
@@ -239,7 +252,7 @@ public override void OnMouseDoubleClick(MouseEventArgs e)
239
252
{
240
253
if ( Locked ) return ;
241
254
242
- if ( GameScene . PickedUpGold || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant ) return ;
255
+ if ( GameScene . PickedUpGold || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant || GridType == MirGridType . Craft ) return ;
243
256
244
257
base . OnMouseClick ( e ) ;
245
258
@@ -281,7 +294,7 @@ private void BuyItem()
281
294
282
295
public void UseItem ( )
283
296
{
284
- if ( Locked || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant || GridType == MirGridType . GuildStorage ) return ;
297
+ if ( Locked || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant || GridType == MirGridType . GuildStorage || GridType == MirGridType . Craft ) return ;
285
298
286
299
if ( MapObject . User . Fishing ) return ;
287
300
if ( MapObject . User . RidingMount && Item . Info . Type != ItemType . Scroll && Item . Info . Type != ItemType . Potion && Item . Info . Type != ItemType . Torch ) return ;
@@ -658,7 +671,7 @@ public void RemoveItem()
658
671
659
672
private void MoveItem ( )
660
673
{
661
- if ( GridType == MirGridType . BuyBack || GridType == MirGridType . DropPanel || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant ) return ;
674
+ if ( GridType == MirGridType . BuyBack || GridType == MirGridType . DropPanel || GridType == MirGridType . Inspect || GridType == MirGridType . TrustMerchant || GridType == MirGridType . Craft ) return ;
662
675
663
676
if ( GameScene . SelectedCell != null )
664
677
{
@@ -1918,6 +1931,21 @@ protected internal override void DrawControl()
1918
1931
Library . Draw ( image , DisplayLocation . Add ( offSet ) , Color . DimGray , UseOffSet , 0.8F ) ;
1919
1932
}
1920
1933
}
1934
+ else if ( ShadowItem != null )
1935
+ {
1936
+ CreateDisposeLabel ( ) ;
1937
+
1938
+ if ( Library != null )
1939
+ {
1940
+ ushort image = ShadowItem . Info . Image ;
1941
+
1942
+ Size imgSize = Library . GetTrueSize ( image ) ;
1943
+
1944
+ Point offSet = new Point ( ( Size . Width - imgSize . Width ) / 2 , ( Size . Height - imgSize . Height ) / 2 ) ;
1945
+
1946
+ Library . Draw ( image , DisplayLocation . Add ( offSet ) , Color . DimGray , UseOffSet , 0.8F ) ;
1947
+ }
1948
+ }
1921
1949
else
1922
1950
DisposeCountLabel ( ) ;
1923
1951
}
@@ -1928,7 +1956,12 @@ protected override void OnMouseEnter()
1928
1956
if ( GridType == MirGridType . Inspect )
1929
1957
GameScene . Scene . CreateItemLabel ( Item , true ) ;
1930
1958
else
1931
- GameScene . Scene . CreateItemLabel ( Item ) ;
1959
+ {
1960
+ if ( Item != null )
1961
+ GameScene . Scene . CreateItemLabel ( Item ) ;
1962
+ else if ( ShadowItem != null )
1963
+ GameScene . Scene . CreateItemLabel ( ShadowItem ) ;
1964
+ }
1932
1965
}
1933
1966
protected override void OnMouseLeave ( )
1934
1967
{
@@ -1939,7 +1972,10 @@ protected override void OnMouseLeave()
1939
1972
1940
1973
private void CreateDisposeLabel ( )
1941
1974
{
1942
- if ( Item . Info . StackSize <= 1 )
1975
+ if ( Item == null && ShadowItem == null )
1976
+ return ;
1977
+
1978
+ if ( Item != null && ShadowItem == null && Item . Info . StackSize <= 1 )
1943
1979
{
1944
1980
DisposeCountLabel ( ) ;
1945
1981
return ;
@@ -1957,7 +1993,17 @@ private void CreateDisposeLabel()
1957
1993
} ;
1958
1994
}
1959
1995
1960
- CountLabel . Text = Item . Count . ToString ( "###0" ) ;
1996
+ if ( ShadowItem != null )
1997
+ {
1998
+ CountLabel . ForeColour = ( Item == null || ShadowItem . Count > Item . Count ) ? Color . Red : Color . LimeGreen ;
1999
+
2000
+ CountLabel . Text = string . Format ( "{0}/{1}" , Item == null ? 0 : Item . Count , ShadowItem . Count ) ;
2001
+ }
2002
+ else
2003
+ {
2004
+ CountLabel . Text = Item . Count . ToString ( "###0" ) ;
2005
+ }
2006
+
1961
2007
CountLabel . Location = new Point ( Size . Width - CountLabel . Size . Width , Size . Height - CountLabel . Size . Height ) ;
1962
2008
}
1963
2009
private void DisposeCountLabel ( )
0 commit comments