/* plik : miecz.c na bazie :)) miecz01.c i wielu innych
 * autor:  
 * data : ???
 * opis : Bron dla Krasnoludow Chaosu (opcjonalnie)
 */

inherit "/d/Imperium/std/weapon.c";
#include "/d/Imperium/alfen/alfen.h";
#include "/d/Imperium/alfen/silvy.h";
#include "/sys/wa_types.h";
#include "opisy_mieczy.h";

string elementy();
string zdobienia();

string wyglad;
string trzymanie;
string trzymanie_op; 
string dlugosc;
string przeznaczenie;
string material;

int wyg;
int trz;
int dlu;
int prz;
int mat;

int waga;
int objetosc;
int wartosc;

string *tab_wyglad_zw=({"z olowiu","z bronzu","z zelaza"});
string *tab_wyglad_st=({"z zelaza","ze stali"});
string *tab_wyglad_bo=({"ze stali","ze stali nierdzewnej","z aluminium"});
string *tab_wyglad_zd=({"ze stali","ze srebra","ze zlota"});
string *tab_wyglad_kzd=({"ze stali nierdzewnej","ze zlota","z platyny"});

mapping tab_material=(["z olowiu":11.3,
                       "z bronzu":8.9,
                       "z zelaza":7.9,
                       "ze stali":6.9,
                       "ze stali nierdzewnej":7.8,
                       "ze srebra":10.5,
                       "ze zlota":19.3,
                       "z platyny":21.4]);

string *tab_wyglad=({"zwykly", "standartowy", "bojowy", "zdobiony",
                     "kunsztownie zdobiony"});

mapping tab_wyglad_war=(["zwykly":100,
                         "standartowy":200,
                         "bojowy":400,
                         "zdobiony":600,
                         "kunsztownie zdobiony":1000]);

//ty jest sposob trzymania (jako przymiotnik i do opisu)
string *tab_trzymanie_op=({"dwureczny","jednoreczny, trzymany w dowolnej rece",
                        "jednoreczny, przystosowany do trzymania w lewej rece"});
                        
mapping tab_trzymanie_rodz=(["dwureczny":W_ANYH,
       "jednoreczny, trzymany w dowolnej rece":W_ANYH,
       "jednoreczny, przystosowany do trzymania w lewej rece":W_LEFT]);                        
                                                
string *tab_trzymanie=({"dwureczny","jednoreczny","jednoreczny"});

//pierwszy element jest do miecza dwurecznego, ostatni do leworecznego

string *tab_dlugosc=({"bardzo dlugi","dlugi","dopasowany","krotki"});

mapping tab_dlugosc_war=(["bardzo dlugi":5000,
                          "dlugi":3000,
                          "dopasowany":1500,
                          "krotki":500]);

string *tab_przeznaczenie=({"ciecia", "pchania",
                            "zarowno do ciecia, jak i pchania"});

mapping tab_przeznaczenie_rodz=(["ciecia":"W_SLASH",
                                 "pchania":"W_IMPALE",
              "zarowno do ciecia, jak i pchania":"W_SLASH|W_IMPALE"]);



int l;
int i;

void
create_weapon()
{
    ustaw_nazwe(({ "miecz", "miecza", "mieczowi", "miecz", "mieczem",
                   "mieczu" }), ({ "miecze", "mieczy", "mieczom",      
                  "miecze", "mieczami", "mieczach" }), PL_MESKI_NOS_NZYW);
    wyg=random(sizeof(tab_wyglad));
    wyglad=tab_wyglad[wyg];
    switch (wyg)
    {
        case 0:
            material=tab_wyglad_zw[random(sizeof(tab_wyglad_zw))];
            break;
        case 1:
            material=tab_wyglad_st[random(sizeof(tab_wyglad_st))];
            break;
        case 2:
            material=tab_wyglad_bo[random(sizeof(tab_wyglad_bo))];
            break;
        case 3:
            material=tab_wyglad_zd[random(sizeof(tab_wyglad_zd))];
            break;
        case 4:
            material=tab_wyglad_kzd[random(sizeof(tab_wyglad_kzd))];
            break;
    }
    l=sizeof(tab_trzymanie);
    trz=random(l);
    trzymanie=tab_trzymanie[trz];
    trzymanie_op=tab_trzymanie_op[trz];
    switch (trz)
    {
        case 0:
            dlugosc=tab_dlugosc[trz];
            break;
//        case l:
        case 3:
            dlugosc=tab_dlugosc[sizeof(tab_dlugosc)];
            break;
        default:
            dlugosc=tab_dlugosc[1+random(sizeof(tab_dlugosc)-2)];
            break;
    }
    objetosc=tab_dlugosc_war[dlugosc];
    objetosc+=random(objetosc);
    waga=objetosc * ftoi(tab_material[material]);
    wartosc=tab_wyglad_war[wyglad]+random(waga);
    prz=random(sizeof(tab_przeznaczenie));
    przeznaczenie=tab_przeznaczenie[prz];

    dodaj_przym(wyglad,"");
//    dodaj_przym(trzymanie,"");
    set_long("Jest to "+wyglad+", "+dlugosc+" miecz. Wykonany jest "+
             material+zdobienia()+elementy()+". Sluzy do "+przeznaczenie+
             ". Jest to "+trzymanie_op+" miecz. \n");                

//beda zalezne od rodzaju broni
    set_hit(16);            
    set_pen(24);                        
    set_wt(W_SWORD);            
    set_hands(tab_trzymanie_rodz[trzymanie_op]);            
    dump_array(tab_przeznaczenie_rodz[przeznaczenie]);
    add_prop(OBJ_I_WEIGHT, waga);
    add_prop(OBJ_I_VOLUME, objetosc);
    add_prop(OBJ_I_VALUE, wartosc);

}                           

string
zdobienia()
{
   return "";
}

//charakterystyczne elementy
string
elementy()
{
    return "";
}