123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using System;
- using PlayerStatus;
- using UnityEngine;
- using wf;
- public class ShopItem : MonoBehaviour
- {
- public void Awake()
- {
- this.name_label_ = UTY.GetChildObject(base.gameObject, "ItemName", false).GetComponent<UILabel>();
- this.price_label_ = UTY.GetChildObject(base.gameObject, "Price", false).GetComponent<UILabel>();
- this.icon_sprite_ = UTY.GetChildObject(base.gameObject, "ItemIcon", false).GetComponent<UI2DSprite>();
- this.icon_button_ = UTY.GetChildObject(base.gameObject, "ItemIcon", false).GetComponent<UIButton>();
- this.buy_button_ = UTY.GetChildObject(base.gameObject, "BuyButton", false).GetComponent<UIButton>();
- this.frame_ = UTY.GetChildObject(base.gameObject, "ItemIcon/Frame", false);
- this.purchased_ = UTY.GetChildObject(base.gameObject, "Purchased", false);
- this.impossible_ = UTY.GetChildObject(base.gameObject, "Impossible", false);
- }
- public void OnDestroy()
- {
- if (this.icon_sprite_ != null && this.icon_sprite_.sprite2D != null && this.icon_sprite_.sprite2D.texture != null)
- {
- UnityEngine.Object.DestroyImmediate(this.icon_sprite_.sprite2D.texture);
- }
- }
- public void SetData(Shop.ItemDataBase item_data, ItemInfoWnd info_window, ShopItem.OnClickEvent icon_click_event, ShopItem.OnClickEvent click_event)
- {
- NDebug.AssertNull(item_data != null);
- this.item_data_ = item_data;
- this.info_window_ = info_window;
- this.icon_click_event_ = icon_click_event;
- this.click_event_ = click_event;
- this.buy_button_.onClick.Clear();
- this.icon_button_.onClick.Clear();
- EventDelegate.Add(this.buy_button_.onClick, new EventDelegate.Callback(this.OnClick));
- EventDelegate.Add(this.icon_button_.onClick, new EventDelegate.Callback(this.OnIconClick));
- UIEventTrigger component = this.icon_button_.GetComponent<UIEventTrigger>();
- component.onHoverOver.Clear();
- component.onHoverOut.Clear();
- EventDelegate.Add(component.onHoverOver, new EventDelegate.Callback(this.OnHoverOver));
- EventDelegate.Add(component.onHoverOut, new EventDelegate.Callback(this.OnHoverOut));
- this.name_label_.text = this.item_data_.name;
- this.price_label_.text = Utility.ConvertMoneyText(this.item_data_.price);
- this.LoadIconImage(this.item_data_.icon_file);
- this.UpdateItemData();
- }
- public void UpdateItemData()
- {
- bool is_have_item = this.item_data_.is_have_item;
- if (is_have_item)
- {
- this.buy_button_.gameObject.SetActive(false);
- this.purchased_.SetActive(true);
- this.price_label_.color = Color.white;
- if (this.impossible_ != null)
- {
- this.impossible_.SetActive(false);
- }
- }
- else
- {
- Status status = GameMain.Instance.CharacterMgr.status;
- bool flag = 0L <= status.money - (long)this.item_data_.price;
- if (this.item_data_.is_enabled_buy_item)
- {
- this.buy_button_.gameObject.SetActive(true);
- this.purchased_.SetActive(false);
- if (flag)
- {
- this.buy_button_.isEnabled = true;
- this.price_label_.color = Color.white;
- }
- else
- {
- this.buy_button_.isEnabled = false;
- this.price_label_.color = Color.red;
- }
- }
- else
- {
- this.buy_button_.gameObject.SetActive(false);
- this.purchased_.SetActive(false);
- this.impossible_.SetActive(true);
- this.price_label_.color = Color.red;
- }
- }
- }
- public void SetFlameVisible(bool value)
- {
- this.frame_.SetActive(value);
- }
- public void LoadIconImage(string icon_file_name)
- {
- if (!GameUty.FileSystem.IsExistentFile(icon_file_name))
- {
- Debug.LogError("アイコンファイル[" + icon_file_name + "]が見つかりませんでした");
- icon_file_name = "icon_none.tex";
- }
- Texture2D texture2D = ImportCM.CreateTexture(icon_file_name);
- Sprite sprite = Sprite.Create(texture2D, new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height), default(Vector2));
- sprite.name = icon_file_name;
- if (this.icon_sprite_.sprite2D != null && this.icon_sprite_.sprite2D.texture != null)
- {
- UnityEngine.Object.DestroyImmediate(this.icon_sprite_.sprite2D.texture);
- }
- this.icon_sprite_.sprite2D = sprite;
- if (texture2D.width < texture2D.height)
- {
- this.icon_sprite_.SetDimensions(72, 73);
- }
- else
- {
- this.icon_sprite_.SetDimensions(texture2D.width, texture2D.height);
- }
- }
- public Shop.ItemDataBase item_data
- {
- get
- {
- return this.item_data_;
- }
- }
- private void OnIconClick()
- {
- if (this.icon_click_event_ != null && this.item_data_.type == Shop.ItemDataBase.Type.Parts)
- {
- this.icon_click_event_(this);
- }
- }
- private void OnClick()
- {
- long num = GameMain.Instance.CharacterMgr.status.money - (long)this.item_data_.price;
- if (num < 0L)
- {
- GameMain.Instance.SysDlg.Show("資金が不足しています。", SystemDialog.TYPE.OK, null, null);
- return;
- }
- string f_strMsg = this.item_data_.name + "\nを購入しますか?\n資金 -" + Utility.ConvertMoneyText(this.item_data_.price) + "CR";
- GameMain.Instance.SysDlg.Show(f_strMsg, SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.CallOnClickEvent), null);
- }
- private void CallOnClickEvent()
- {
- if (this.click_event_ != null)
- {
- this.click_event_(this);
- }
- GameMain.Instance.SysDlg.Show(this.item_data_.name + "を購入しました", SystemDialog.TYPE.OK, null, null);
- }
- private void OnHoverOver()
- {
- Vector3 position = base.transform.position;
- this.info_window_.Open(position, this.icon_sprite_.sprite2D.texture, this.item_data_.name, this.item_data_.detail_text, 0);
- Transform transform = UTY.GetChildObject(this.info_window_.gameObject, "Base", false).transform;
- transform.position = position;
- float y = transform.localPosition.y;
- transform.localPosition = this.info_window_.m_vecOffsetPos + new Vector3(-337f, y, 0f);
- if (-412f > transform.localPosition.y - 90f)
- {
- Vector3 vecOffsetPos = this.info_window_.m_vecOffsetPos;
- vecOffsetPos.y *= -1f;
- transform.localPosition = vecOffsetPos + new Vector3(-337f, y, 0f);
- }
- }
- private void OnHoverOut()
- {
- this.info_window_.Close();
- }
- private ItemInfoWnd info_window_;
- private UILabel name_label_;
- private UILabel price_label_;
- private UI2DSprite icon_sprite_;
- private UIButton icon_button_;
- private UIButton buy_button_;
- private GameObject frame_;
- private GameObject purchased_;
- private GameObject impossible_;
- private Shop.ItemDataBase item_data_;
- private ShopItem.OnClickEvent icon_click_event_;
- private ShopItem.OnClickEvent click_event_;
- public delegate void OnClickEvent(ShopItem click);
- }
|