var
MainForm: TclForm;
UstPanel, TerminalPanel, AltPanel: TClProPanel;
// GÖRSEL ENVANTER
PnlEnvanter: TClProPanel;
ImgInvTufek, ImgInvRadyo, ImgInvIlac: TClProImage;
// AKSİYON GÖRSELİ
PnlAction: TClProPanel;
ImgAction: TClProImage;
LblAction: TClProLabel;
ActionTimer: TClTimer;
BekleyenIslem: String;
// ALARM PANELİ
PnlAlarm: TClProPanel;
LblAlarm: TClProLabel;
AlarmTimer: TClTimer;
AlarmSayac: Integer;
// GECE MODU
PnlGece: TClProPanel;
LblGeceMesaj: TClProLabel;
GeceTimer: TClTimer;
GunlukKararSayisi: Integer;
// OYUN SONU
PnlOyunSonu: TClProPanel;
LblSonuBaslik, LblSonuDetay, LblSkor: TClProLabel;
BtnRestart: TClProButton;
// İstatistik Barları
OksijenBarDis, ErzakBarDis, MoralBarDis: TClProPanel;
OksijenBar, ErzakBar, MoralBar: TClProPanel;
OksijenLbl, ErzakLbl, MoralLbl: TClProLabel;
// Değerler
OksijenDeger, ErzakDeger, MoralDeger, NufusDeger: Integer;
GunSayisi: Integer;
GunLabel, NufusLabel: TClProLabel;
HastalikRiskiVar: Boolean;
// Olay Ekranı
OlayBaslikLbl, OlayDetayLbl: TClProLabel;
BtnKabul, BtnRed: TClProButton;
// Veri Dizileri
OlayBasliklari, OlayAciklamalari: TclArrayString;
OksijenEtkisiEvet, ErzakEtkisiEvet, MoralEtkisiEvet, NufusEtkisiEvet: TclArrayInteger;
OksijenEtkisiHayir, ErzakEtkisiHayir, MoralEtkisiHayir, NufusEtkisiHayir: TclArrayInteger;
MevcutSoruIndex: Integer;
// RESPONSIVE DEĞİŞKENLERİ
EkranYukseklik, EkranGenislik: Integer;
BarYukseklik: Integer;
// Eşya Durumları
SahipTufek, SahipRadyo, SahipIlac: Boolean;
Baslik : String;
void AssetleriYukle;
{
MainForm.AddAssetFromUrl(' https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/tufek.png" rel="nofollow - https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/tufek.png '); // tüfek
MainForm.AddAssetFromUrl(' https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/ilac.png" rel="nofollow - https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/ilac.png '); // ilaç
MainForm.AddAssetFromUrl(' https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/radyo.png" rel="nofollow - https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/radyo.png '); // radyo maske
MainForm.AddAssetFromUrl(' https://raw.githubusercontent.com/emrkmn/ses/main/kesif.png" rel="nofollow - https://raw.githubusercontent.com/emrkmn/ses/main/kesif.png '); // kesif
}
void AlarmCalistir(Mesaj: String);
{
PnlAlarm.Visible = True;
PnlAlarm.BringToFront;
LblAlarm.Text = Mesaj;
AlarmSayac = 0;
AlarmTimer.Enabled = True;
}
void ActionGoster(Mesaj: String);
{
PnlAction.Visible = True;
PnlAction.BringToFront;
LblAction.Text = Mesaj;
}
void EnvanterGuncelle;
{
if (SahipTufek) ImgInvTufek.Opacity = 1; else ImgInvTufek.Opacity = 0.3;
if (SahipRadyo) ImgInvRadyo.Opacity = 1; else ImgInvRadyo.Opacity = 0.3;
if (SahipIlac) ImgInvIlac.Opacity = 1; else ImgInvIlac.Opacity = 0.3;
}
void BarlariGuncelle;
{
// Sınır Kontrolleri
if (OksijenDeger > 100) OksijenDeger = 100; if (OksijenDeger < 0) OksijenDeger = 0;
if (ErzakDeger > 100) ErzakDeger = 100; if (ErzakDeger < 0) ErzakDeger = 0;
if (MoralDeger > 100) MoralDeger = 100; if (MoralDeger < 0) MoralDeger = 0;
if (NufusDeger < 0) NufusDeger = 0;
// Bar Genişlikleri
OksijenBar.Width = (OksijenDeger * OksijenBarDis.Width) div 100;
ErzakBar.Width = (ErzakDeger * ErzakBarDis.Width) div 100;
MoralBar.Width = (MoralDeger * MoralBarDis.Width) div 100;
// Etiketler
OksijenLbl.Text = 'Oksijen: %' + IntToStr(OksijenDeger);
ErzakLbl.Text = 'ERZAK: %' + IntToStr(ErzakDeger);
MoralLbl.Text = 'MORAL: %' + IntToStr(MoralDeger);
GunLabel.Text = 'GÜN: ' + IntToStr(GunSayisi);
NufusLabel.Text = 'NÜFUS: ' + IntToStr(NufusDeger);
// Renk Değişimi (Kritik Seviye)
if (OksijenDeger < 30) OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0288D1'); OksijenBar.SetclProSettings(OksijenBar.clProSettings);
if (ErzakDeger < 30) ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F57C00'); ErzakBar.SetclProSettings(ErzakBar.clProSettings);
if (MoralDeger < 30) MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#388E3C'); MoralBar.SetclProSettings(MoralBar.clProSettings);
EnvanterGuncelle;
}
void OyunBitti(Baslik, Detay: String; RenkKodu: String);
{
PnlOyunSonu.Visible = True; PnlOyunSonu.BringToFront;
PnlOyunSonu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(RenkKodu);
PnlOyunSonu.SetclProSettings(PnlOyunSonu.clProSettings);
LblSonuBaslik.Text = Baslik;
LblSonuDetay.Text = Detay;
LblSkor.Text = 'HAYATTA KALINAN SÜRE: ' + IntToStr(GunSayisi) + ' GÜN';
}
void DurumKontrol;
{
if (OksijenDeger <= 0) { OyunBitti('BOĞULARAK ÖLDÜNÜZ', 'Oksijen sistemi iflas etti.', '#263238'); Exit; }
if (ErzakDeger <= 0) { OyunBitti('AÇLIKTAN ÖLDÜNÜZ', 'Stoklar tükendi.', '#3E2723'); Exit; }
if (MoralDeger <= 0) { OyunBitti('İSYAN ÇIKTI', 'Yönetim ele geçirildi.', '#B71C1C'); Exit; }
if (NufusDeger <= 0) { OyunBitti('HERKES ÖLDÜ', 'Sığınak sessizliğe gömüldü.', '#000000'); Exit; }
GunlukKararSayisi = GunlukKararSayisi + 1;
if (GunlukKararSayisi >= 5)
{
PnlGece.Visible = True; PnlGece.BringToFront;
LblGeceMesaj.Text = 'GÜN ' + IntToStr(GunSayisi) + ' SONA ERİYOR..';
GeceTimer.Enabled = True;
}
else
{
// YENİ OLAY GETİR
if (HastalikRiskiVar == True)
{
if (clMath.GenerateRandom(1, 100) < 30)
{
MevcutSoruIndex = 999;
OlayBaslikLbl.Text = '⚠️ SALGIN UYARISI ⚠️';
OlayDetayLbl.Text = 'Virüs yayılıyor! İlaç kullanıp karantina uygulayalım mı?';
AlarmCalistir('BİYOLOJİK TEHLİKE!');
BtnKabul.Text = 'İLAÇ KULLAN';
BtnRed.Text = 'KADERİNE BIRAK';
HastalikRiskiVar = False;
BarlariGuncelle;
Exit;
}
}
MevcutSoruIndex = clMath.GenerateRandom(0, OlayBasliklari.Count);
Baslik = OlayBasliklari.GetItem(MevcutSoruIndex);
if (Baslik == 'GİZEMLİ SİNYAL')
{
if (GunSayisi < 12)
{
while (Baslik == 'GİZEMLİ SİNYAL')
{
MevcutSoruIndex = clMath.GenerateRandom(0, OlayBasliklari.Count);
Baslik = OlayBasliklari.GetItem(MevcutSoruIndex);
}
}
}
OlayBaslikLbl.Text = Baslik;
OlayDetayLbl.Text = OlayAciklamalari.GetItem(MevcutSoruIndex);
// Buton Metinleri
if (Baslik == 'HAYDUT SALDIRISI') { BtnKabul.Text = 'SAVAŞ (TÜFEK)'; BtnRed.Text = 'SAKLAN'; AlarmCalistir('SALDIRI ALTINDAYIZ!'); }
else if (Baslik == 'TERK EDİLMİŞ POLİS ARACI') { BtnKabul.Text = 'ARAŞTIR'; BtnRed.Text = 'GİTME'; }
else if (Baslik == 'ESKİ HASTANE') { BtnKabul.Text = 'KEŞİFÇİ YOLLA'; BtnRed.Text = 'RİSKLİ'; }
else if (Baslik == 'GEZGİN TÜCCAR') { BtnKabul.Text = 'TAKAS (30 ERZAK)'; BtnRed.Text = 'REDDET'; }
else if (Baslik == 'GİZEMLİ SİNYAL') { BtnKabul.Text = 'CEVAPLA (RADYO)'; BtnRed.Text = 'GÖRMEZDEN GEL'; }
else if (Baslik == 'YARALI YABANCI') { BtnKabul.Text = 'İÇERİ AL'; BtnRed.Text = 'KOV'; }
else { BtnKabul.Text = 'KABUL ET'; BtnRed.Text = 'REDDET'; }
BarlariGuncelle;
}
}
// Timer İşlemleri
void OnActionTimer;
{
ActionTimer.Enabled = False;
PnlAction.Visible = False;
if (BekleyenIslem == 'HASTANE_SONUC')
{
if (clMath.GenerateRandom(0, 100) > 40) {
SahipIlac = True;
ShowMessage('Keşif başarılı! İLAÇ bulduk.');
EnvanterGuncelle;
} else {
ShowMessage('Keşifçi eli boş döndü ve yaralandı.');
OksijenDeger = OksijenDeger - 10;
MoralDeger = MoralDeger - 10;
}
BarlariGuncelle;
DurumKontrol;
}
if (BekleyenIslem == 'POLIS_SONUC')
{
SahipTufek = True;
ShowMessage('Risk aldık ama değdi! BİR TÜFEK BULDUK!');
OksijenDeger = OksijenDeger - 10;
EnvanterGuncelle;
BarlariGuncelle;
DurumKontrol;
}
BekleyenIslem = '';
}
void OnAlarmTimer;
{
AlarmSayac = AlarmSayac + 1;
if (PnlAlarm.Visible) PnlAlarm.Visible = False; else PnlAlarm.Visible = True;
if (AlarmSayac > 6) { AlarmTimer.Enabled = False; PnlAlarm.Visible = False; }
}
void OyunuSifirla;
{
OksijenDeger = 80; ErzakDeger = 100; MoralDeger = 80; NufusDeger = 5;
GunSayisi = 1; GunlukKararSayisi = 0;
HastalikRiskiVar = False;
PnlOyunSonu.Visible = False; PnlGece.Visible = False; PnlAlarm.Visible = False; PnlAction.Visible = False;
SahipTufek = False; SahipRadyo = False; SahipIlac = False;
EnvanterGuncelle;
DurumKontrol;
}
void OnGeceTimer;
{
GeceTimer.Enabled = False;
ErzakDeger = ErzakDeger - (NufusDeger * 1);
OksijenDeger = OksijenDeger - (NufusDeger * 1);
GunSayisi = GunSayisi + 1;
GunlukKararSayisi = 0;
PnlGece.Visible = False;
BarlariGuncelle;
DurumKontrol;
}
void KararVer(EvetSecildi: Boolean);
var
Olay: String;
{
if (MevcutSoruIndex == 999) { // Salgın
if (EvetSecildi) {
if (SahipIlac) { ShowMessage('İlaç stoğumuz sayesinde salgını atlatmayı Başardık !'); SahipIlac = False; EnvanterGuncelle; }
else { ShowMessage('İlacımız yoktu! Erzaklar ziyan oldu.'); ErzakDeger = ErzakDeger - 40; }
} else {
NufusDeger = NufusDeger - 2; MoralDeger = MoralDeger - 30; ShowMessage('Müdahale edilmediği için 2 kişi öldü.');
}
BarlariGuncelle; DurumKontrol; Exit;
}
Olay = OlayBasliklari.GetItem(MevcutSoruIndex);
if (Olay == 'YARALI YABANCI') { if (EvetSecildi) HastalikRiskiVar = True; }
if (Olay == 'TERK EDİLMİŞ POLİS ARACI') {
if (EvetSecildi) {
ActionGoster('BÖLGE ARAŞTIRILIYOR...');
BekleyenIslem = 'POLIS_SONUC';
ActionTimer.Enabled = True;
Exit;
}
}
if (Olay == 'ESKİ HASTANE') {
if (EvetSecildi) {
ActionGoster('KEŞİFÇİ GİDİYOR...');
BekleyenIslem = 'HASTANE_SONUC';
ActionTimer.Enabled = True;
Exit;
}
}
if (Olay == 'HAYDUT SALDIRISI') {
if (EvetSecildi) {
if (SahipTufek) { ShowMessage('Tüfek ateşiyle haydutları kaçırdık! Ganimet bıraktılar.'); ErzakDeger = ErzakDeger + 25; MoralDeger = MoralDeger + 10; }
else { ShowMessage('Silahımız yoktu! Bizi saldırıp erzakları çaldılar.'); ErzakDeger = ErzakDeger - 50; NufusDeger = NufusDeger - 1; MoralDeger = MoralDeger - 25; }
} else {
ShowMessage('Saklandık. Deponun bir kısmını patlattılar.'); ErzakDeger = ErzakDeger - 20; OksijenDeger = OksijenDeger - 10;
}
BarlariGuncelle; DurumKontrol; Exit;
}
if (Olay == 'GEZGİN TÜCCAR') {
if (EvetSecildi) {
if (ErzakDeger >= 30) { SahipRadyo = True; ShowMessage('Tüccar ile anlaştık! Artık bir RADYOMUZ var.'); EnvanterGuncelle; }
else { ShowMessage('Yeterli erzak yok!'); BarlariGuncelle; DurumKontrol; Exit; }
}
}
if (Olay == 'GİZEMLİ SİNYAL') {
if (EvetSecildi) {
if (SahipRadyo) { OyunBitti('KURTULUŞ!', 'Ordu geldi!', '#2E7D32'); Exit; }
else { ShowMessage('Radyo olmadan duyamayız.'); MoralDeger = MoralDeger - 10; }
}
}
if (EvetSecildi) {
OksijenDeger = OksijenDeger + OksijenEtkisiEvet.GetItem(MevcutSoruIndex);
ErzakDeger = ErzakDeger + ErzakEtkisiEvet.GetItem(MevcutSoruIndex);
MoralDeger = MoralDeger + MoralEtkisiEvet.GetItem(MevcutSoruIndex);
NufusDeger = NufusDeger + NufusEtkisiEvet.GetItem(MevcutSoruIndex);
} else {
OksijenDeger = OksijenDeger + OksijenEtkisiHayir.GetItem(MevcutSoruIndex);
ErzakDeger = ErzakDeger + ErzakEtkisiHayir.GetItem(MevcutSoruIndex);
MoralDeger = MoralDeger + MoralEtkisiHayir.GetItem(MevcutSoruIndex);
NufusDeger = NufusDeger + NufusEtkisiHayir.GetItem(MevcutSoruIndex);
}
BarlariGuncelle;
DurumKontrol;
}
void BtnKabulClick; { KararVer(True); }
void BtnRedClick; { KararVer(False); }
void VerileriYukle;
{
OlayBasliklari = TclArrayString.Create; OlayAciklamalari = TclArrayString.Create;
OksijenEtkisiEvet = TclArrayInteger.Create; ErzakEtkisiEvet = TclArrayInteger.Create; MoralEtkisiEvet = TclArrayInteger.Create; NufusEtkisiEvet = TclArrayInteger.Create;
OksijenEtkisiHayir = TclArrayInteger.Create; ErzakEtkisiHayir = TclArrayInteger.Create; MoralEtkisiHayir = TclArrayInteger.Create; NufusEtkisiHayir = TclArrayInteger.Create;
OlayBasliklari.Add('YARALI YABANCI'); OlayAciklamalari.Add('Kapıda biri var. Öksürüyor ama yardıma ihtiyacı var yardım etsek mi?.');
OksijenEtkisiEvet.Add(-2); ErzakEtkisiEvet.Add(-10); MoralEtkisiEvet.Add(5); NufusEtkisiEvet.Add(1);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('HAVALANDIRMA'); OlayAciklamalari.Add('Fanlar bozuldu. Tamir etmek yorucu.');
OksijenEtkisiEvet.Add(15); ErzakEtkisiEvet.Add(-15); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(-25); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-10); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('SAKLI ERZAK'); OlayAciklamalari.Add('Eski bir kutuda konserve bulduk.');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(20); MoralEtkisiEvet.Add(5); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(-5); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('HAYDUT SALDIRISI'); OlayAciklamalari.Add('Silahlı grup kapıda Tehlikedeyiz!');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('TERK EDİLMİŞ POLİS ARACI'); OlayAciklamalari.Add('Dışarıda polis aracı var. Silah olabilir.');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('GEZGİN TÜCCAR'); OlayAciklamalari.Add('Tüccar geldi. 30 Erzak = Radyo.');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(-30); MoralEtkisiEvet.Add(10); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('ESKİ HASTANE'); OlayAciklamalari.Add('Yıkık hastanede ilaç olabilir.');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);
OlayBasliklari.Add('GİZEMLİ SİNYAL'); OlayAciklamalari.Add('Radyodan ses geliyor.');
OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);
}
{
MainForm = TclForm.Create(Self);
MainForm.clSetCaption('Sığınak Yöneticisi: Dark Edition');
// 1. ANA TASARIM: Koyu Füme/Siyah Arka Plan
MainForm.SetFormColor('#ADD8E6', '#ADD8E6', clGVertical);
MainForm.AddAssetFromUrl(' https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/formum.png" rel="nofollow - https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/formum.png ');
EkranYukseklik = MainForm.clHeight; EkranGenislik = MainForm.clWidth; BarYukseklik = (EkranYukseklik * 3) div 100;
AssetleriYukle; VerileriYukle;
// ÜST PANEL (Daha koyu, bordersız)
UstPanel = MainForm.AddNewProPanel(MainForm, 'UstPanel'); UstPanel.Align = alTop; UstPanel.Height = (EkranYukseklik * 30) div 100;
UstPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ADD8E6'); UstPanel.SetclProSettings(UstPanel.clProSettings);
// Gün ve Nüfus (Vurgulu Renkler)
GunLabel = MainForm.AddNewProLabel(UstPanel, 'GunLabel', 'GÜN: 1'); GunLabel.Align = alTop; GunLabel.Height = (UstPanel.Height * 15) div 100; GunLabel.Margins.Top = 5;
GunLabel.clProSettings.FontSize = 24; GunLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFC107'); // Amber
GunLabel.clProSettings.FontHorzAlign = palCenter; GunLabel.clProSettings.TextSettings.Font.Style = [fsBold]; GunLabel.SetclProSettings(GunLabel.clProSettings);
NufusLabel = MainForm.AddNewProLabel(UstPanel, 'NufusLabel', 'NÜFUS: 5'); NufusLabel.Align = alTop; NufusLabel.Height = (UstPanel.Height * 12) div 100;
NufusLabel.clProSettings.FontSize = 16; NufusLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#E0E0E0');
NufusLabel.clProSettings.FontHorzAlign = palCenter; NufusLabel.SetclProSettings(NufusLabel.clProSettings);
// BARLAR (Dish rengi koyultuldu)
OksijenBarDis = MainForm.AddNewProPanel(UstPanel, 'OksijenBarDis'); OksijenBarDis.Align = alTop; OksijenBarDis.Height = BarYukseklik; OksijenBarDis.Margins.Top = 5; OksijenBarDis.Margins.Left = 10; OksijenBarDis.Margins.Right = 10;
OksijenBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); OksijenBarDis.clProSettings.IsRound = True; OksijenBarDis.SetclProSettings(OksijenBarDis.clProSettings);
OksijenBar = MainForm.AddNewProPanel(OksijenBarDis, 'OksijenBar'); OksijenBar.Align = alLeft; OksijenBar.Width = 100; OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0288D1'); OksijenBar.clProSettings.IsRound = True; OksijenBar.SetclProSettings(OksijenBar.clProSettings);
OksijenLbl = MainForm.AddNewProLabel(UstPanel, 'OksijenLbl', 'Oksijen'); OksijenLbl.Align = alTop; OksijenLbl.Height = 15; OksijenLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); OksijenLbl.clProSettings.FontSize = 11; OksijenLbl.SetclProSettings(OksijenLbl.clProSettings);
ErzakBarDis = MainForm.AddNewProPanel(UstPanel, 'ErzakBarDis'); ErzakBarDis.Align = alTop; ErzakBarDis.Height = BarYukseklik; ErzakBarDis.Margins.Top = 2; ErzakBarDis.Margins.Left = 10; ErzakBarDis.Margins.Right = 10;
ErzakBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); ErzakBarDis.clProSettings.IsRound = True; ErzakBarDis.SetclProSettings(ErzakBarDis.clProSettings);
ErzakBar = MainForm.AddNewProPanel(ErzakBarDis, 'ErzakBar'); ErzakBar.Align = alLeft; ErzakBar.Width = 100; ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F57C00'); ErzakBar.clProSettings.IsRound = True; ErzakBar.SetclProSettings(ErzakBar.clProSettings);
ErzakLbl = MainForm.AddNewProLabel(UstPanel, 'ErzakLbl', 'Erzak'); ErzakLbl.Align = alTop; ErzakLbl.Height = 15; ErzakLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); ErzakLbl.clProSettings.FontSize = 11; ErzakLbl.SetclProSettings(ErzakLbl.clProSettings);
MoralBarDis = MainForm.AddNewProPanel(UstPanel, 'MoralBarDis'); MoralBarDis.Align = alTop; MoralBarDis.Height = BarYukseklik; MoralBarDis.Margins.Top = 2; MoralBarDis.Margins.Left = 10; MoralBarDis.Margins.Right = 10;
MoralBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); MoralBarDis.clProSettings.IsRound = True; MoralBarDis.SetclProSettings(MoralBarDis.clProSettings);
MoralBar = MainForm.AddNewProPanel(MoralBarDis, 'MoralBar'); MoralBar.Align = alLeft; MoralBar.Width = 100; MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#388E3C'); MoralBar.clProSettings.IsRound = True; MoralBar.SetclProSettings(MoralBar.clProSettings);
MoralLbl = MainForm.AddNewProLabel(UstPanel, 'MoralLbl', 'Moral'); MoralLbl.Align = alTop; MoralLbl.Height = 15; MoralLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); MoralLbl.clProSettings.FontSize = 11; MoralLbl.SetclProSettings(MoralLbl.clProSettings);
// ALT PANEL (Butonlar)
AltPanel = MainForm.AddNewProPanel(MainForm, 'AltPanel'); AltPanel.Align = alBottom; AltPanel.Height = (EkranYukseklik * 15) div 100;
AltPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#121212'); AltPanel.SetclProSettings(AltPanel.clProSettings);
BtnRed = MainForm.AddNewProButton(AltPanel, 'BtnRed', 'REDDET'); BtnRed.Align = alLeft; BtnRed.Width = (EkranGenislik * 45) div 100; BtnRed.Margins.Top = 10; BtnRed.Margins.Bottom = 10; BtnRed.Margins.Left = 10;
BtnRed.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#C62828'); // Koyu Kırmızı
BtnRed.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnRed.clProSettings.IsRound = True; BtnRed.clProSettings.RoundWidth = 5; // Daha keskin köşe
BtnRed.SetclProSettings(BtnRed.clProSettings); MainForm.AddNewEvent(BtnRed, tbeOnClick, 'BtnRedClick');
BtnKabul = MainForm.AddNewProButton(AltPanel, 'BtnKabul', 'KABUL ET'); BtnKabul.Align = alRight; BtnKabul.Width = (EkranGenislik * 45) div 100; BtnKabul.Margins.Top = 10; BtnKabul.Margins.Bottom = 10; BtnKabul.Margins.Right = 10;
BtnKabul.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E7D32'); // Koyu Yeşil
BtnKabul.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnKabul.clProSettings.IsRound = True; BtnKabul.clProSettings.RoundWidth = 5;
BtnKabul.SetclProSettings(BtnKabul.clProSettings); MainForm.AddNewEvent(BtnKabul, tbeOnClick, 'BtnKabulClick');
// ENVANTER (HUD Tasarımı)
PnlEnvanter = MainForm.AddNewProPanel(MainForm, 'PnlEnvanter'); PnlEnvanter.Align = alBottom; PnlEnvanter.Height = (EkranYukseklik * 8) div 100;
PnlEnvanter.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); // Slate
PnlEnvanter.clProSettings.BorderColor = clAlphaColor.clHexToColor('#37474F'); PnlEnvanter.clProSettings.BorderWidth = 1; PnlEnvanter.SetclProSettings(PnlEnvanter.clProSettings);
ImgInvTufek = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvTufek'); ImgInvTufek.Align = alLeft; ImgInvTufek.Width = (PnlEnvanter.Width * 33) div 100; ImgInvTufek.Margins.top = 5;
ImgInvTufek.Margins.bottom = 5;
ImgInvTufek.Margins.left = 5;
ImgInvTufek.Margins.Right = 5;
ImgInvTufek.clProSettings.PictureSource = 'tufek.png'; ImgInvTufek.clProSettings.PictureAutoFit = True; ImgInvTufek.SetclProSettings(ImgInvTufek.clProSettings);
ImgInvRadyo = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvRadyo'); ImgInvRadyo.Align = alLeft; ImgInvRadyo.Width = (PnlEnvanter.Width * 33) div 100; ImgInvRadyo.Margins.top = 5;
ImgInvRadyo.Margins.bottom = 5;
ImgInvRadyo.Margins.left = 5;
ImgInvRadyo.Margins.Right = 5;
ImgInvRadyo.clProSettings.PictureSource = 'radyo.png'; ImgInvRadyo.clProSettings.PictureAutoFit = True; ImgInvRadyo.SetclProSettings(ImgInvRadyo.clProSettings);
ImgInvIlac = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvIlac'); ImgInvIlac.Align = alLeft; ImgInvIlac.Width = (PnlEnvanter.Width * 33) div 100; ImgInvIlac.Margins.top = 5;
ImgInvIlac.Margins.left = 5;
ImgInvIlac.Margins.Right = 5;
ImgInvIlac.Margins.bottom = 5;
ImgInvIlac.clProSettings.PictureSource = 'ilac.png'; ImgInvIlac.clProSettings.PictureAutoFit = True; ImgInvIlac.SetclProSettings(ImgInvIlac.clProSettings);
// TERMINAL PANELİ (Cyber-Monitor Havası)
TerminalPanel = MainForm.AddNewProPanel(MainForm, 'TerminalPanel'); TerminalPanel.Align = alClient; TerminalPanel.Margins.Top = 10; TerminalPanel.Margins.Bottom = 10; TerminalPanel.Margins.Left = 10; TerminalPanel.Margins.Right = 10;
TerminalPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); // Tam Siyah
TerminalPanel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#4CAF50'); // Neon Yeşil Çerçeve
TerminalPanel.clProSettings.BorderWidth = 2; TerminalPanel.clProSettings.IsRound = True; TerminalPanel.clProSettings.RoundWidth = 5;
TerminalPanel.SetclProSettings(TerminalPanel.clProSettings);
OlayBaslikLbl = MainForm.AddNewProLabel(TerminalPanel, 'OlayBaslikLbl', 'SİSTEM BAŞLATILIYOR...'); OlayBaslikLbl.Align = alTop; OlayBaslikLbl.Height = (EkranYukseklik * 10) div 100;
OlayBaslikLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#4CAF50'); // Yeşil Başlık
OlayBaslikLbl.clProSettings.FontSize = 22; OlayBaslikLbl.clProSettings.FontHorzAlign = palCenter; OlayBaslikLbl.clProSettings.TextSettings.Font.Style = [fsBold]; OlayBaslikLbl.SetclProSettings(OlayBaslikLbl.clProSettings);
OlayDetayLbl = MainForm.AddNewProLabel(TerminalPanel, 'OlayDetayLbl', 'Veriler yükleniyor...'); OlayDetayLbl.Align = alClient; OlayDetayLbl.Margins.top = 15;
OlayDetayLbl.Margins.left = 15;
OlayDetayLbl.Margins.Right = 15;
OlayDetayLbl.Margins.bottom = 15;
OlayDetayLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#A5D6A7'); // Açık Yeşil Yazı
OlayDetayLbl.clProSettings.FontSize = 18; OlayDetayLbl.clProSettings.FontHorzAlign = palCenter; OlayDetayLbl.clProSettings.FontVertAlign = palCenter; OlayDetayLbl.clProSettings.WordWrap = True; OlayDetayLbl.SetclProSettings(OlayDetayLbl.clProSettings);
// GİZLİ PANELLER
PnlAlarm = MainForm.AddNewProPanel(MainForm, 'PnlAlarm'); PnlAlarm.Align = alCenter; PnlAlarm.Width = (EkranGenislik * 80) div 100; PnlAlarm.Height = (EkranYukseklik * 20) div 100; PnlAlarm.Visible = False; PnlAlarm.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); PnlAlarm.clProSettings.IsRound = True; PnlAlarm.SetclProSettings(PnlAlarm.clProSettings);
LblAlarm = MainForm.AddNewProLabel(PnlAlarm, 'LblAlarm', 'ALARM!'); LblAlarm.Align = alCenter; LblAlarm.Height = 50; LblAlarm.Width = (PnlAlarm.Width * 90) div 100; LblAlarm.clProSettings.FontSize = 24; LblAlarm.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblAlarm.clProSettings.FontHorzAlign = palCenter; LblAlarm.clProSettings.TextSettings.Font.Style = [fsBold]; LblAlarm.SetclProSettings(LblAlarm.clProSettings);
PnlAction = MainForm.AddNewProPanel(MainForm, 'PnlAction'); PnlAction.Align = alCenter; PnlAction.Width = (EkranGenislik * 70) div 100; PnlAction.Height = (EkranYukseklik * 40) div 100; PnlAction.Visible = False;
PnlAction.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); // Koyu Arkaplan
PnlAction.clProSettings.IsRound = True; PnlAction.clProSettings.BorderColor = clAlphaColor.clHexToColor('#FFFFFF'); PnlAction.clProSettings.BorderWidth = 2; PnlAction.SetclProSettings(PnlAction.clProSettings);
ImgAction = MainForm.AddNewProImage(PnlAction, 'ImgAction'); ImgAction.Align = alClient; ImgAction.Height = (PnlAction.Height * 70) div 100; ImgAction.clProSettings.PictureSource = 'kesif.png'; ImgAction.clProSettings.PictureAutoFit = True; ImgAction.SetclProSettings(ImgAction.clProSettings);
LblAction = MainForm.AddNewProLabel(PnlAction, 'LblAction', '...'); LblAction.Align = alClient; LblAction.clProSettings.FontSize = 18; LblAction.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); LblAction.clProSettings.FontHorzAlign = palCenter; LblAction.clProSettings.FontVertAlign = palCenter; LblAction.SetclProSettings(LblAction.clProSettings);
PnlGece = MainForm.AddNewProPanel(MainForm, 'PnlGece'); PnlGece.Align = alContents; PnlGece.Visible = False; PnlGece.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); PnlGece.SetclProSettings(PnlGece.clProSettings);
LblGeceMesaj = MainForm.AddNewProLabel(PnlGece, 'LblGeceMesaj', 'GÜN BİTTİ...'); LblGeceMesaj.Align = alCenter; LblGeceMesaj.Width = (EkranGenislik * 80) div 100; LblGeceMesaj.Height = 100; LblGeceMesaj.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblGeceMesaj.clProSettings.FontSize = 24; LblGeceMesaj.clProSettings.FontHorzAlign = palCenter; LblGeceMesaj.SetclProSettings(LblGeceMesaj.clProSettings);
PnlOyunSonu = MainForm.AddNewProPanel(MainForm, 'PnlOyunSonu'); PnlOyunSonu.Align = alContents; PnlOyunSonu.Visible = False; PnlOyunSonu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c0392b'); PnlOyunSonu.SetclProSettings(PnlOyunSonu.clProSettings);
LblSonuBaslik = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSonuBaslik', 'OYUN BİTTİ'); LblSonuBaslik.Align = alTop; LblSonuBaslik.Height = (EkranYukseklik * 15) div 100; LblSonuBaslik.Margins.Top = 40; LblSonuBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblSonuBaslik.clProSettings.FontSize = 30; LblSonuBaslik.clProSettings.FontHorzAlign = palCenter; LblSonuBaslik.clProSettings.TextSettings.Font.Style = [fsBold]; LblSonuBaslik.SetclProSettings(LblSonuBaslik.clProSettings);
LblSkor = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSkor', 'SKOR: 0'); LblSkor.Align = alTop; LblSkor.Height = 50; LblSkor.clProSettings.FontColor = clAlphaColor.clHexToColor('#f1c40f'); LblSkor.clProSettings.FontSize = 20; LblSkor.clProSettings.FontHorzAlign = palCenter; LblSkor.SetclProSettings(LblSkor.clProSettings);
LblSonuDetay = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSonuDetay', '...'); LblSonuDetay.Align = alClient; LblSonuDetay.Margins.top = 20; LblSonuDetay.Margins.bottom = 20; LblSonuDetay.Margins.Left = 20; LblSonuDetay.Margins.Right = 20; LblSonuDetay.clProSettings.FontColor = clAlphaColor.clHexToColor('#ecf0f1'); LblSonuDetay.clProSettings.FontSize = 18; LblSonuDetay.clProSettings.FontHorzAlign = palCenter; LblSonuDetay.clProSettings.WordWrap = True; LblSonuDetay.SetclProSettings(LblSonuDetay.clProSettings);
BtnRestart = MainForm.AddNewProButton(PnlOyunSonu, 'BtnRestart', 'YENİDEN BAŞLAT'); BtnRestart.Align = alBottom; BtnRestart.Height = (EkranYukseklik * 10) div 100; BtnRestart.Margins.Left = 50; BtnRestart.Margins.Right = 50; BtnRestart.Margins.Bottom = 50; BtnRestart.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); BtnRestart.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnRestart.clProSettings.IsRound = True; BtnRestart.clProSettings.FontSize = 20; BtnRestart.SetclProSettings(BtnRestart.clProSettings); MainForm.AddNewEvent(BtnRestart, tbeOnClick, 'OyunuSifirla');
// Timerlar
AlarmTimer = MainForm.AddNewTimer(MainForm, 'AlarmTimer', 500); AlarmTimer.Enabled = False; MainForm.AddNewEvent(AlarmTimer, tbeOnTimer, 'OnAlarmTimer');
GeceTimer = MainForm.AddNewTimer(MainForm, 'GeceTimer', 2000); GeceTimer.Enabled = False; MainForm.AddNewEvent(GeceTimer, tbeOnTimer, 'OnGeceTimer');
ActionTimer = MainForm.AddNewTimer(MainForm, 'ActionTimer', 2000); ActionTimer.Enabled = False; MainForm.AddNewEvent(ActionTimer, tbeOnTimer, 'OnActionTimer');
OyunuSifirla;
MainForm.Run; yaptığım oyunda bir monitör kısmı ve bunu oluşturduğum görseli bu monitör kısmının içine koymak istiyorum ama yapamadım
}