/* * small_object.java * * Created on October 27, 2001, 11:29 AM */ /** * * @author robert w harrison * @version draft */ import java.lang.String; public class small_object extends java.lang.Object { String name; double weight; boolean shoots; boolean is_sword; boolean is_food; boolean is_magic; boolean is_valuable; boolean is_poison; double value; /** Creates new small_object */ public small_object() { this("nothing", 0.); } public small_object( String name, double weight) { this.name = name; this.weight = weight; is_sword = false; shoots = false; is_food = false; is_magic = false; is_valuable = false; is_poison = false; } public double weight() { return weight;} public String what_i_am() { return name;} public void set_poison( double value) { is_poison = true; is_food = false; this.value = value;} public boolean poisonous() { return is_poison;} public double poison(double fraction) { double old_value; old_value = value; value *= (1.-fraction); return old_value*fraction; } public void set_valuable( double value) { is_valuable = true; this.value = value;} public boolean valuable() { return is_valuable;} public double value() { if( is_valuable) return value; return 0.;} public void set_magic() { is_magic = true;} public boolean magical() { return is_magic;} public void set_food( double calories) { is_food = true; value = calories;} public boolean edible() {return is_food;} public double eat( double fraction) { if( !is_food) return 0.; double old_value; old_value = value; value *= (1. - fraction); weight *= (1. - fraction); return old_value * fraction; } public void set_shoots( double shots) {shoots = true; value = shots;} public boolean shootable() { return shoots;} public boolean shoot() { if( !shoots) return false; if( value <= 0.) return false; value -= 1.; return true; } public void set_sword() { is_sword = true;} public boolean sword() { return is_sword;} }