Tôi đang làm việc trên hệ thống kiểm kê cho trò chơi của mình và quan tâm đến cách tôi triển khai các thuộc tính vũ khí và áo giáp bổ sung không chỉ là sát thương hoặc áo giáp?
Nếu tất cả những gì tôi có là sát thương và áo giáp, phương trình rất đơn giản: sát thương = sát thương vũ khí - áo giáp;
Nhưng tôi đang tìm kiếm trải nghiệm người dùng thú vị hơn - cụ thể là các vật phẩm có 2-3 thuộc tính sửa đổi các cơ chế trò chơi khác nhau.
Ví dụ: tôi có thể sử dụng một loạt các cờ và viết một câu lệnh if / other lớn trong phương thức tấn công của mình và kiểm tra tất cả những điều này tại các điểm thích hợp:
if (vũ khí là ma cà rồng) {chữa lành kẻ tấn công cho x}
if (vũ khí là thánh) {kiểm tra loại hậu vệ, thêm sát thương}
if (áo giáp hấp thụ x sát thương đầu tiên) {giảm sát thương cho hậu vệ bằng x}
Một cách khác mà tôi nghĩ có thể tốt hơn là mẫu thiết kế trang trí - dần dần bao bọc đầu ra của một sáng tạo vũ khí này sang một vũ khí khác:
public class Main {
public static final void main(String[] args) {
Weapon w = new MeleeWeapon();
w = new Holy(w);
w = new Vampiric;
w = new Enchanted(w,1);
Damage damage = w.damage();
}
}
Dường như với tôi, người trang trí sẽ cho phép tôi viết mã linh hoạt hơn và thêm nhiều loại sau, nhưng tôi không chắc liệu nó có chuyển các câu lệnh if / other vào phương thức đặc tính vũ khí hay không.